free-mail-sender
v1.1.1
Published
This Strapi plugin is designed to streamline the process of sending emails through the REST API. It enables you to send emails using different providers and customize the email content to suit your specific needs.
Downloads
168
Maintainers
Readme
Strapi plugin free-mail-sender
This Strapi plugin is designed to streamline the process of sending emails through the REST API. It enables you to send emails using different providers and customize the email content to suit your specific needs.
Installation
npm i free-mail-sender
Or
yarn add free-mail-sender
Or
pnpm i free-mail-sender
Config
To allow public use to the POST endpoint, go to:
<URL>/admin/settings/users-permissions/roles/2
Pick Free-mail-sender
selector and check the mailto
box option
Usage
Examples
Send an email:
Using a POST request to the following endpoint:
<URL>/api/free-mail-sender/send-email
- With the following body to a single recipient:
{
"toEmail": "[email protected]",
"subject": "Important subject",
"mailText": "Simple text content"
}
Or
- With the following body (using html content) to a single recipient:
{
"toEmail": "[email protected]",
"subject": "Important subject",
"mailText": "<p><b>HTML</b> content</p>"
}
Or
- To multiple recipients using an array with simple content in HTML:
{
"toEmail": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"subject": "Important subject",
"mailText": "<p><b>HTML</b> content</p>"
}
Or
- With complex content to multiple recipients:
{
"toEmail": [
"[email protected]",
"[email protected]",
"[email protected]"
],
"subject": "Important subject",
"mailText": "<!DOCTYPE html><html><head><style>#myHeader {background-color: lightblue;color: black;padding: 40px;text-align: center;} </style></head><body><h2>The id Attribute</h2><p>Use CSS to style an element with the id myHeader:</p><h1 id='myHeader'>My Header</h1></body></html>"
}
IMPORTANT
The current plugin sends mails vía SMTP. (In the future, it will support other providers), so you need to configure the SMTP settings in your setting of your email provider (Gmail, Outlook, etc).
Limits
The usage of SMTP to send mails has a limit of 300 emails per day to 100 different recipients, but check the limits of your email provider.
Configuration
The default values can be customized via the plugin config. To do it, create or edit your
plugins.js/plugins.ts
file.
Example configuration
config/plugins.js
module.exports = ({ env }) => ({
'free-mail-sender': {
config: {
provider: 'gmail', // Check the providers list -> DEFAULT: 'outlook'
sender: env('EMAIL_SENDER', ''),
pass: env('PASSWORD_SENDER', '')
},
},
});
Or
config/plugins.ts
export default ({ env }) => ({
'free-mail-sender': {
config: {
provider: 'gmail', // Check the providers list -> DEFAULT: 'outlook'
sender: env('EMAIL_SENDER', ''),
pass: env('PASSWORD_SENDER', '')
},
},
});
The plugin configuration requires the email and password of the sender.
You can set them in the .env
file using the variables EMAIL_SENDER
and PASSWORD_SENDER
as follows:
.env
JWT_SECRET=...
#...
[email protected]
PASSWORD_SENDER=superSecretPasswordMailHere
Configuration options extended
provider
- 'gmail' | 'outlook' | 'yahoo' | 'zoho' | 'sendgrid' | 'mailgun' | 'yandex' | 'protonmail' | 'icloud' | 'aol' | 'zohomail' | 'gmx' -> DEFAULT: 'outlook'
Providers list
- Gmail: 'gmail'
- Outlook: 'outlook'
- Yahoo: 'yahoo'
- Zoho: 'zoho'
- Sendgrid: 'sendgrid'
- Mailgun: 'mailgun'
- Yandex: 'yandex'
- Protonmail: 'protonmail'
- icloud: 'icloud'
- aol: 'aol'
- Zohomail: 'zohomail'
- gmx: 'gmx'
Quick Tutorial Step by Step
Click on the image below to watch the tutorial on YouTube. It will guide you through the process of installing and configuring the plugin and how to test it through the REST API via Postman.
Feel free to ask any questions or suggest improvements.
Contributing
The current development is in progress, so feel free to contribute to the project.