Send email using Gmail in Sheetbase backend app.
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 | |
| forwarding? | undefined | string | |
| templates? | Record | 
Lib
The Lib class.
Lib properties
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 actionmail/no-access: Current auth user has no access permission for the resource.Routes
Routes overview
| Route | Method | Disabled | Description | 
|---|---|---|---|
| GET | Get mail information | ||
| PATCH | true | Reply to a thread/message | |
| 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[]
@sheetbase/mail is released under the MIT license.
Generated using TypeDoc