@sheetbase/mail
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<string, string | Category> |
|
forwarding? | undefined | string |
|
templates? | Record<string, Template> |
Lib
The Lib
class.
Lib properties
Lib methods
Function | Returns type | Description |
---|---|---|
registerRoutes(routeEnabling?, middlewares?) | RouterService<> |
Expose the module routes |
registerRoutes(routeEnabling?, middlewares?)
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 |
---|---|---|---|
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
/mailGet mail information
Response
object
PATCH
/mail
PATCH
/mailDISABLED
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
PUT
/mailDISABLED
Send an email
Request body
Name | Type | Description |
---|---|---|
recipient | string |
|
subject | string |
|
input | MailingInput |
|
categoryName? | string |
Response
object
GET
/mail/thread
GET
/mail/threadDISABLED
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
GET
/mail/threadsDISABLED
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.