@sheetbase/mail

Send email using Gmail in Sheetbase backend app.

Usage no npm install needed!

<script type="module">
  import sheetbaseMail from 'https://cdn.skypack.dev/@sheetbase/mail';
</script>

README

Installation

  • Install: npm install --save @sheetbase/mail

  • Usage:

// 1. import module
import { MailModule } from "@sheetbase/mail";

// 2. create an instance
export class App {
  // the object
  mailModule: MailModule;

  // initiate the instance
  constructor() {
    this.mailModule = new MailModule(/* options */);
  }
}

Options

Name Type Description
categories? Record<string, string | Category>
forwarding? undefined | string
templates? Record<string, Template>

Lib

The Lib class.

Lib properties

Name Type Description
attachmentService AttachmentService
helperService HelperService
labelService LabelService
mailRoute MailRoute
mailService MailService
mailThreadRoute MailThreadRoute
mailThreadsRoute MailThreadsRoute
messageService MessageService
optionService OptionService
threadService ThreadService

Lib methods

Function Returns type Description
registerRoutes(routeEnabling?, middlewares?) RouterService<> Expose the module routes

registerRoutes(routeEnabling?, middlewares?)

Expose the module routes

Parameters

Param Type Description
routeEnabling true | DisabledRoutes
middlewares Middlewares | RouteMiddlewares

Returns

RouterService<>


Routing

MailModule provides REST API endpoints allowing clients to access server resources. Theses enpoints are not exposed by default, to expose the endpoints:

MailModule.registerRoutes(routeEnabling?);

Errors

MailModule returns these routing errors, you may use the error code to customize the message:

  • mail/invalid-input: Invalid input.
  • mail/missing-recipient: Missing required recipient for the action
  • mail/no-access: Current auth user has no access permission for the resource.

Routes

Routes overview

Route Method Disabled Description
/mail GET Get mail information
/mail PATCH true Reply to a thread/message
/mail PUT true Send an email
/mail/thread GET true Get a single message/thread
/mail/threads GET true Get threads (list by category/single - parent + children/single - children only)

Routes detail

GET /mail

Get mail information

Response

object


PATCH /mail

DISABLED Reply to a thread/message

Request body

Name Type Description
threadId? string
messageId? string
input MailingInput
replyAll? boolean

Middleware data

Name Type Description
auth AuthData

Response

GmailMessage | GmailThread


PUT /mail

DISABLED Send an email

Request body

Name Type Description
recipient string
subject string
input MailingInput
categoryName? string

Response

object


GET /mail/thread

DISABLED Get a single message/thread

Request query

Name Type Description
threadId? string
messageId? string

Middleware data

Name Type Description
auth AuthData

Response

null | Thread


GET /mail/threads

DISABLED Get threads (list by category/single - parent + children/single - children only)

Request query

Name Type Description
threadId? string
categoryName? string
childrenOnly? boolean
full? boolean
grouping? boolean

Middleware data

Name Type Description
auth AuthData

Response

Thread[] | GroupingThread | GroupingThread[]


License

@sheetbase/mail is released under the MIT license.