Send email using Gmail in Sheetbase backend app.
npm install @sheetbase/mailSend email using Gmail in Sheetbase backend app.
- Installation
- Options
- Lib
- Lib properties
- Lib methods
- registerRoutes(routeEnabling?, middlewares?)
- Routing
- Errors
- Routes
- Routes overview
- Routes detail
- GET /mail
- PATCH /mail
- PUT /mail
- GET /mail/thread
- GET /mail/threads
- Detail API reference
Installation
- Install: npm install --save @sheetbase/mail
- Usage:
``ts
// 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
| 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:
`ts`
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 |
| ----------------------------------- | ------- | -------- | -------------------------------------------------------------------------------- |
| /mail | GET | | Get mail information |PATCH
| /mail | | true | Reply to a thread/message |PUT
| /mail | | true | Send an email |GET
| /mail/thread | | true | Get a single message/thread |GET
| /mail/threads | | 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.