@codeparticle/strapi-provider-email-nodemailer
v4.9.11
Published
Nodemailer provider for Strapi 3
Maintainers
Readme
@codeparticle/strapi-provider-email-nodemailer
Resources
Links
Installation
# using yarn
yarn add @codeparticle/strapi-provider-email-nodemailer
# using npm
npm install @codeparticle/strapi-provider-email-nodemailer --saveExample
Path - config/plugins.js
module.exports = ({ env }) => ({
// ...
email: {
config: {
provider: 'nodemailer',
providerOptions: {
host: env('SMTP_HOST', 'smtp.example.com'),
port: env('SMTP_PORT', 587),
auth: {
user: env('SMTP_USERNAME'),
pass: env('SMTP_PASSWORD'),
},
// ... any custom nodemailer options
},
settings: {
defaultFrom: '[email protected]',
defaultReplyTo: '[email protected]',
},
},
},
// ...
});Check out the available options for nodemailer: https://nodemailer.com/about/
Development mode
You can override the default configurations for specific environments. E.g. for
NODE_ENV=development in config/env/development/plugins.js:
module.exports = ({ env }) => ({
email: {
config: {
provider: 'nodemailer',
providerOptions: {
host: 'localhost',
port: 1025,
ignoreTLS: true,
},
},
},
});The above setting is useful for local development with maildev.
Custom authentication mechanisms
It is also possible to use custom authentication methods. Here is an example for a NTLM authentication:
const nodemailerNTLMAuth = require('nodemailer-ntlm-auth');
module.exports = ({ env }) => ({
email: {
config: {
provider: 'nodemailer',
providerOptions: {
host: env('SMTP_HOST', 'smtp.example.com'),
port: env('SMTP_PORT', 587),
auth: {
type: 'custom',
method: 'NTLM',
user: env('SMTP_USERNAME'),
pass: env('SMTP_PASSWORD'),
},
customAuth: {
NTLM: nodemailerNTLMAuth,
},
},
settings: {
defaultFrom: '[email protected]',
defaultReplyTo: '[email protected]',
},
},
},
});Usage
:warning: The Shipper Email (or defaultfrom) may also need to be changed in the
Email Templatestab on the admin panel for emails to send properly
To send an email from anywhere inside Strapi:
await strapi.plugin('email').service('email').send({
to: '[email protected]',
from: '[email protected]',
subject: 'Hello world',
text: 'Hello world',
html: `<h4>Hello world</h4>`,
});The following fields are supported:
| Field | Description | | ----------- | ----------------------------------------------------------------- | | from | Email address of the sender | | to | Comma separated list or an array of recipients | | replyTo | Email address to which replies are sent | | cc | Comma separated list or an array of recipients | | bcc | Comma separated list or an array of recipients | | subject | Subject of the email | | text | Plaintext version of the message | | html | HTML version of the message | | attachments | Array of objects See: https://nodemailer.com/message/attachments/ |
Troubleshooting
Check your firewall to ensure that requests are allowed. If it doesn't work with
port: 465,
secure: truetry using
port: 587,
secure: falseto test if it works correctly.
