Adding SendGrid email transport (#15384)

* Adding SendGrid email transport

* Formatting

Co-authored-by: rijkvanzanten <rijkvanzanten@me.com>
This commit is contained in:
Mehdi Nassim KHODJA
2022-09-05 16:14:41 +02:00
committed by GitHub
parent ac34279eb1
commit 31a6fd208f
5 changed files with 296 additions and 10 deletions

View File

@@ -292,7 +292,7 @@ EXTENSIONS_AUTO_RELOAD=false
EMAIL_FROM="no-reply@directus.io"
# What to use to send emails. One of
# sendmail, smtp, mailgun, ses.
# sendmail, smtp, mailgun, sendgrid, ses.
EMAIL_TRANSPORT="sendmail"
EMAIL_SENDMAIL_NEW_LINE="unix"
EMAIL_SENDMAIL_PATH="/usr/sbin/sendmail"
@@ -319,3 +319,6 @@ EMAIL_SENDMAIL_PATH="/usr/sbin/sendmail"
## Email (Mailgun Transport)
# EMAIL_MAILGUN_API_KEY="key-1234123412341234"
# EMAIL_MAILGUN_DOMAIN="a domain name from https://app.mailgun.com/app/sending/domains"
## Email (SendGrid Transport)
# EMAIL_SENDGRID_API_KEY="key-1234123412341234"

View File

@@ -161,6 +161,7 @@ const allowedEnvironmentVars = [
'EMAIL_MAILGUN_API_KEY',
'EMAIL_MAILGUN_DOMAIN',
'EMAIL_MAILGUN_HOST',
'EMAIL_SENDGRID_API_KEY',
'EMAIL_SES_CREDENTIALS__ACCESS_KEY_ID',
'EMAIL_SES_CREDENTIALS__SECRET_ACCESS_KEY',
'EMAIL_SES_REGION',

View File

@@ -59,6 +59,13 @@ export default function getMailer(): Transporter {
host: env.EMAIL_MAILGUN_HOST || 'api.mailgun.net',
}) as any
);
} else if (transportName === 'sendgrid') {
const sg = require('nodemailer-sendgrid');
transporter = nodemailer.createTransport(
sg({
apiKey: env.EMAIL_SENDGRID_API_KEY,
}) as any
);
} else {
logger.warn('Illegal transport given for email. Check the EMAIL_TRANSPORT env var.');
}