2021-12-01 07:59:34 -07:00
|
|
|
# @strapi/provider-email-nodemailer
|
2020-10-29 13:45:47 +01:00
|
|
|
|
|
|
|
## Resources
|
|
|
|
|
2021-12-01 09:00:24 -07:00
|
|
|
- [LICENSE](LICENSE)
|
2020-10-29 13:45:47 +01:00
|
|
|
|
|
|
|
## Links
|
|
|
|
|
2021-01-26 17:06:25 +01:00
|
|
|
- [Strapi website](https://strapi.io/)
|
2021-12-01 07:59:34 -07:00
|
|
|
- [Strapi documentation](https://docs.strapi.io)
|
|
|
|
- [Strapi community on Discord](https://discord.strapi.io)
|
2020-10-29 13:45:47 +01:00
|
|
|
- [Strapi news on Twitter](https://twitter.com/strapijs)
|
|
|
|
|
|
|
|
## Installation
|
|
|
|
|
|
|
|
```bash
|
|
|
|
# using yarn
|
2021-12-01 07:59:34 -07:00
|
|
|
yarn add @strapi/provider-email-nodemailer
|
2020-10-29 13:45:47 +01:00
|
|
|
|
|
|
|
# using npm
|
2021-12-01 07:59:34 -07:00
|
|
|
npm install @strapi/provider-email-nodemailer --save
|
2020-10-29 13:45:47 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
## Example
|
|
|
|
|
|
|
|
**Path -** `config/plugins.js`
|
|
|
|
|
|
|
|
```js
|
|
|
|
module.exports = ({ env }) => ({
|
2021-11-30 10:33:42 -07:00
|
|
|
// ...
|
2020-10-29 13:45:47 +01:00
|
|
|
email: {
|
2021-11-30 10:33:42 -07:00
|
|
|
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: 'hello@example.com',
|
|
|
|
defaultReplyTo: 'hello@example.com',
|
2020-10-29 13:45:47 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
2021-11-30 10:33:42 -07:00
|
|
|
// ...
|
2020-10-29 13:45:47 +01:00
|
|
|
});
|
|
|
|
```
|
|
|
|
|
|
|
|
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**:
|
|
|
|
|
|
|
|
```js
|
|
|
|
module.exports = ({ env }) => ({
|
|
|
|
email: {
|
2023-01-10 00:25:24 +01:00
|
|
|
config: {
|
|
|
|
provider: 'nodemailer',
|
|
|
|
providerOptions: {
|
|
|
|
host: 'localhost',
|
|
|
|
port: 1025,
|
|
|
|
ignoreTLS: true,
|
|
|
|
},
|
2020-10-29 13:45:47 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
```
|
|
|
|
|
|
|
|
The above setting is useful for local development with
|
|
|
|
[maildev](https://github.com/maildev/maildev).
|
|
|
|
|
|
|
|
### Custom authentication mechanisms
|
|
|
|
|
|
|
|
It is also possible to use custom authentication methods.
|
|
|
|
Here is an example for a NTLM authentication:
|
|
|
|
|
|
|
|
```js
|
|
|
|
const nodemailerNTLMAuth = require('nodemailer-ntlm-auth');
|
|
|
|
|
|
|
|
module.exports = ({ env }) => ({
|
|
|
|
email: {
|
2023-01-10 00:25:24 +01:00
|
|
|
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,
|
|
|
|
},
|
2020-10-29 13:45:47 +01:00
|
|
|
},
|
2023-01-10 00:25:24 +01:00
|
|
|
settings: {
|
|
|
|
defaultFrom: 'hello@example.com',
|
|
|
|
defaultReplyTo: 'hello@example.com',
|
2020-10-29 13:45:47 +01:00
|
|
|
},
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
```
|
|
|
|
|
|
|
|
## Usage
|
2021-04-29 11:11:46 +02:00
|
|
|
|
2021-04-20 05:57:52 -07:00
|
|
|
> :warning: The Shipper Email (or defaultfrom) may also need to be changed in the `Email Templates` tab on the admin panel for emails to send properly
|
2020-10-29 13:45:47 +01:00
|
|
|
|
|
|
|
To send an email from anywhere inside Strapi:
|
|
|
|
|
|
|
|
```js
|
2023-01-04 17:16:16 +01:00
|
|
|
await strapi.plugin('email').service('email').send({
|
|
|
|
to: 'someone@example.com',
|
|
|
|
from: 'someone2@example.com',
|
|
|
|
subject: 'Hello world',
|
|
|
|
text: 'Hello world',
|
|
|
|
html: `<h4>Hello world</h4>`,
|
|
|
|
});
|
2020-10-29 13:45:47 +01:00
|
|
|
```
|
|
|
|
|
|
|
|
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
|
|
|
|
|
|
|
|
```js
|
|
|
|
port: 465,
|
|
|
|
secure: true
|
|
|
|
```
|
|
|
|
|
|
|
|
try using
|
|
|
|
|
|
|
|
```js
|
|
|
|
port: 587,
|
|
|
|
secure: false
|
|
|
|
```
|
|
|
|
|
|
|
|
to test if it works correctly.
|