159 lines
3.9 KiB
Markdown
Raw Permalink Normal View History

# @strapi/provider-email-nodemailer
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
2020-10-29 13:45:47 +01:00
## Resources
- [LICENSE](LICENSE)
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
2020-10-29 13:45:47 +01:00
## Links
- [Strapi website](https://strapi.io/)
- [Strapi documentation](https://docs.strapi.io)
- [Strapi community on Discord](https://discord.strapi.io)
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
2020-10-29 13:45:47 +01:00
- [Strapi news on Twitter](https://twitter.com/strapijs)
## Installation
```bash
# using yarn
yarn add @strapi/provider-email-nodemailer
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
2020-10-29 13:45:47 +01:00
# using npm
npm install @strapi/provider-email-nodemailer --save
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
2020-10-29 13:45:47 +01:00
```
## Example
**Path -** `config/plugins.js`
```js
module.exports = ({ env }) => ({
// ...
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
2020-10-29 13:45:47 +01:00
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: 'hello@example.com',
defaultReplyTo: 'hello@example.com',
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
2020-10-29 13:45:47 +01:00
},
},
},
// ...
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
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: {
config: {
provider: 'nodemailer',
providerOptions: {
host: 'localhost',
port: 1025,
ignoreTLS: true,
},
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
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: {
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,
},
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
2020-10-29 13:45:47 +01:00
},
settings: {
defaultFrom: 'hello@example.com',
defaultReplyTo: 'hello@example.com',
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
2020-10-29 13:45:47 +01:00
},
},
},
});
```
## Usage
2021-04-29 11:11:46 +02: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
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
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>`,
});
feat: maintain strapi-provider-email-nodemailer What does it do? ---------------- This will merge repository https://github.com/yutikom/strapi-provider-email-nodemailer/ into this mono repo under ``` packages/strapi-provider-email-nodemailer ``` Why is it needed? ----------------- In summer I opened [issue 6998](https://github.com/strapi/strapi/issues/6998) because I had a terrible developer experience from a multitude of unmaintained or outdated 3rd party libraries for email delivery through SMTP. As explained in the issue, we made `strapi-provider-email-nodemailer` compatible with version 3. I think the best idea would be to incorporate the library into the main strapi mono repository, so it does not get out of sync and stays maintained. Strapi is already maintaining several proprietary email providers including Mailgun, Sendgrid and Amazon: https://github.com/strapi/strapi/tree/master/packages So why not SMTP? SMTP is not proprietary and it's better for data privacy and GDPR. Developer experience gets improved because less headache but also because most people have an email account already. See the isssue for more details. Related issue(s)/PR(s) ---------------------- https://github.com/strapi/strapi/issues/6998 close #6998 Co-authored-by: Veit Bjarsch <vb@poweruplink.com> Co-authored-by: Saunved <saunved@gmail.com> Co-authored-by: Yurii Tykhomyrov <yurii.tykhomyrov@automat-it.com> Co-authored-by: Tymon Jakubowski <tymon.jakubowski@gmail.com> Signed-off-by: roschaefer <git@roschaefer.de>
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.