From 5d4abf7269265dcb4a3e301ff8765b410762e6ea Mon Sep 17 00:00:00 2001 From: Riley Davis Date: Wed, 7 Dec 2016 14:55:12 -1000 Subject: [PATCH 1/3] add host and port because GCP is silly --- services/mailer.js | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/services/mailer.js b/services/mailer.js index 16da98f41..c21e0137a 100644 --- a/services/mailer.js +++ b/services/mailer.js @@ -1,12 +1,22 @@ const nodemailer = require('nodemailer'); -if (!process.env.TALK_SMTP_USERNAME || !process.env.TALK_SMTP_PASSWORD) { - console.error('TALK_SMTP_USERNAME and TALK_SMTP_PASSWORD should be defined if you would like to send password reset emails from Talk'); -} +const smtpProps = [ + 'TALK_SMTP_USERNAME', + 'TALK_SMTP_PASSWORD', + 'TALK_SMTP_HOST', + 'TALK_SMTP_PORT' +]; + +smtpProps.forEach(prop => { + if (!process.env[prop]) { + console.error(`process.env.${prop} should be defined if you would like to send password reset emails from Talk`); + } +}); const defaultTransporter = nodemailer.createTransport({ // https://github.com/nodemailer/nodemailer-wellknown#supported-services - service: 'SendGrid', + host: process.env.TALK_SMTP_HOST, + port: process.env.TALK_SMTP_PORT, auth: { user: process.env.TALK_SMTP_USERNAME, pass: process.env.TALK_SMTP_PASSWORD From f7fa0ae86644f745b6c0be68f9314dbcf6e2bc02 Mon Sep 17 00:00:00 2001 From: Riley Davis Date: Wed, 7 Dec 2016 15:01:07 -1000 Subject: [PATCH 2/3] make PORT and HOST optional --- services/mailer.js | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/services/mailer.js b/services/mailer.js index c21e0137a..ed636314b 100644 --- a/services/mailer.js +++ b/services/mailer.js @@ -1,27 +1,34 @@ const nodemailer = require('nodemailer'); -const smtpProps = [ +const smtpRequiredProps = [ 'TALK_SMTP_USERNAME', - 'TALK_SMTP_PASSWORD', - 'TALK_SMTP_HOST', - 'TALK_SMTP_PORT' + 'TALK_SMTP_PASSWORD' ]; -smtpProps.forEach(prop => { +smtpRequiredProps.forEach(prop => { if (!process.env[prop]) { console.error(`process.env.${prop} should be defined if you would like to send password reset emails from Talk`); } }); -const defaultTransporter = nodemailer.createTransport({ - // https://github.com/nodemailer/nodemailer-wellknown#supported-services - host: process.env.TALK_SMTP_HOST, - port: process.env.TALK_SMTP_PORT, +// https://github.com/nodemailer/nodemailer-wellknown#supported-services +const options = { + service: 'SendGrid', auth: { user: process.env.TALK_SMTP_USERNAME, pass: process.env.TALK_SMTP_PASSWORD } -}); +}; + +if (process.env.TALK_SMTP_PORT) { + options.port = process.env.TALK_SMTP_PORT; +} + +if (process.env.TALK_SMTP_HOST) { + options.host = process.env.TALK_SMTP_HOST; +} + +const defaultTransporter = nodemailer.createTransport(options); const mailer = { From 9f360cf7800c57df07cce8b61d2d6151550a31a1 Mon Sep 17 00:00:00 2001 From: Riley Davis Date: Wed, 7 Dec 2016 15:03:49 -1000 Subject: [PATCH 3/3] make the provider an env var --- services/mailer.js | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/services/mailer.js b/services/mailer.js index ed636314b..b7d621954 100644 --- a/services/mailer.js +++ b/services/mailer.js @@ -2,7 +2,8 @@ const nodemailer = require('nodemailer'); const smtpRequiredProps = [ 'TALK_SMTP_USERNAME', - 'TALK_SMTP_PASSWORD' + 'TALK_SMTP_PASSWORD', + 'TALK_SMTP_PROVIDER' ]; smtpRequiredProps.forEach(prop => { @@ -11,9 +12,10 @@ smtpRequiredProps.forEach(prop => { } }); -// https://github.com/nodemailer/nodemailer-wellknown#supported-services const options = { - service: 'SendGrid', + // list of providers here: + // https://github.com/nodemailer/nodemailer-wellknown#supported-services + service: process.env.TALK_SMTP_PROVIDER, auth: { user: process.env.TALK_SMTP_USERNAME, pass: process.env.TALK_SMTP_PASSWORD