Send email with MailerSend
Made by MailerSend
Send transactional emails using MailerSend.
- Works with
- Cloud Firestore
- Version
- 0.1.8 | Source code
- Tags
- messaging
- License
- Apache-2.0
- Publisher
- MailerSend
- Report
- Bug
- Abuse
How this extension works
馃挭 How it works
After its installation, this extension monitors all document writes to the EMAIL_COLLECTION
collection. Email is sent based on the contents of the document鈥檚 fields. The document鈥檚 fields specify an email data.
Send an email
Here's a basic example document write that would trigger this extension
admin.firestore().collection('emails').add({
to: [
{
email: 'recipient@example.com',
name: 'Recipient name'
}
],
from: {
email: 'from@example.com',
name: 'From name'
},
cc: [
{
email: 'cc.recipient@example.com',
name: 'CC recipient name'
}
],
bcc: [
{
email: 'bcc.recipient@example.com',
name: 'Bcc recipient name'
}
],
subject: 'Hello from Firebase!',
html: 'This is an <code>HTML</code> email body.',
text: 'This is an TEXT email body.',
template_id: 'abc123ced',
variables: [
{
email: 'recipient@example.com',
substitutions: [
{
var: 'variable_name',
value: 'variable value'
}
]
}
],
personalization: [
{
email: 'recipient@example.com',
data: {
personalization_name: 'personalization value'
}
}
],
tags: ['tag1', 'tag2'],
reply_to: {
email: 'reply_to@example.com',
name: 'Reply to name'
},
send_at: '123465789'
})
Additional setup
Before installing this extension, set up the following Firebase service in your Firebase project:
- Cloud Firestore collection in your Firebase project.
Then, in the MailerSend dashboard:
Collection fields
Find all the JSON field parameters you can add to your API call, provided in dot notation
JSON field parameter | Type | Required | Limitations | Details |
---|---|---|---|---|
from |
object |
yes * | Not required if set in extension config or template_id is present and template has default sender set. |
|
from.email |
string |
yes * | Must be a verified domain or subdomain. | Not required if set in extension config or template_id is present and template has default sender set. |
from.name |
string |
no | from.email will be used if not provided or, if set in extension config or template_id is present with default values, the default subject from that will be used. |
|
to |
object[] |
yes | Min 1 , max 50 |
|
to.*.email |
string |
yes | ||
to.*.name |
string |
no | The name of the recipient. May not contain ; or , . |
|
cc |
object[] |
no | Max 10 | |
cc.*.email |
string |
yes | ||
cc.*.name |
string |
no | The name of the CC recipient. May not contain ; or , . |
|
bcc |
object[] |
no | Max 10 | |
bcc.*.email |
string |
yes | ||
bcc.*.name |
string |
no | The name of the BCC recipient. May not contain ; or , . |
|
reply_to |
object |
no | ||
reply_to.email |
string |
no | Can be set in extension config | |
reply_to.name |
string |
no | Can be set in extension config | |
subject |
string |
yes * | Not required if template_id is present and template has default subject set. |
|
text |
string |
yes * | Max size of 2 MB. | Email represented in a text (text/plain ) format. * Only required if there鈥檚 no html or template_id present. |
html |
string |
yes * | Max size of 2 MB. | Email represented in HTML (text/html ) format. * Only required if there鈥檚 no text or template_id present. |
template_id |
string |
yes * | * Only required if there鈥檚 no text or html present. |
|
tags |
string[] |
no | Limit is max 5 tags. | |
variables |
object[] |
no | These will be replaced in the email content using {$var} format. Can be used in the subject , html , text fields. |
|
variables.*.email |
string |
yes | Email address that substitutions will be applied to. Read more about simple personalization. | |
variables.*.substitutions |
object[] |
yes | ||
variables.*.substitutions.*.var |
string |
yes | Name of the variable, will replace {$var} in the subject , html , text fields. |
|
variables.*.substitutions.*.value |
string |
yes | Value to be replaced, based on the variables.*.substitutions.*.var name. |
|
personalization |
object[] |
no | Allows using personalization in {{ var }} syntax. Can be used in the subject , html , text fields. Read more about advanced personalization. |
|
personalization.*.email |
string |
yes | Email address that personalization will be applied to. | |
personalization.*.data |
object[] |
yes | Object with key: value pairs. Values will be added to your template using {{ key }} syntax. |
|
send_at |
integer |
no | min: now , max: now + 72hours |
Has to be a Unix timestamp. Please note that this timestamp is a minimal guarantee and that the email could be delayed due to server load. |
Email results
After email sending is triggered this extension fills results into the delivery
field.
Field | Description |
---|---|
error | Validation error, or error from the server |
message_id | Message ID in MailerSend system |
state | State of an email sending: ERROR , SUCCESS |
馃挸 Billing
This extension uses other Firebase or Google Cloud Platform services which may have associated charges:
- Cloud Functions
When you use Firebase Extensions, you鈥檙e only charged for the underlying resources that you use. A paid-tier billing plan is only required if the extension uses a service that requires a paid-tier plan, for example calling to a Google Cloud Platform API or making outbound network requests to non-Google services. All Firebase services offer a free tier of usage. Learn more about Firebase billing.
This extension also uses the following third-party services:
- MailerSend (pricing information)
You are responsible for any costs associated with your use of these services.