diff --git a/app/helpers/sendmail.js b/app/helpers/sendmail.js index 76e73ff..dfc14e8 100644 --- a/app/helpers/sendmail.js +++ b/app/helpers/sendmail.js @@ -1,13 +1,28 @@ -var nodemailer = require('nodemailer'); +const nodemailer = require('nodemailer'); -module.exports = function(mailOptions, callback) -{ - var transporter = nodemailer.createTransport({ - service: 'Gmail', - auth: { - user: process.env.GMAIL_USER, - pass: process.env.GMAIL_PASSWORD - } - }); - transporter.sendMail(mailOptions, callback); -}; \ No newline at end of file +module.exports = function(mailOptions, callback) { + let transportConfig; + + const canSendSmtp = process.env.SMTP_USER !== undefined && process.env.SMTP_PASSWORD !== undefined && process.env.SMTP_HOST !== undefined; + if (canSendSmtp) { + transportConfig = { + host: process.env.SMTP_HOST, + secure: true, + auth: { + user: process.env.SMTP_USER, + pass: process.env.SMTP_PASSWORD + } + }; + } else { + transportConfig = { + service: 'Gmail', + auth: { + user: process.env.GMAIL_USER, + pass: process.env.GMAIL_PASSWORD + } + }; + } + + const transporter = nodemailer.createTransport(transportConfig); + transporter.sendMail(mailOptions, callback); +}; diff --git a/app/routes/forgot.js b/app/routes/forgot.js index 0256559..16b643e 100644 --- a/app/routes/forgot.js +++ b/app/routes/forgot.js @@ -34,7 +34,7 @@ router.post('/', function(req, res, next) { var mailOptions = { to: user.email, - from: 'passwordreset@demo.com', + from: process.env.SMTP_FROM_USER || 'passwordreset@demo.com', subject: 'Node.js Password Reset', text: 'You are receiving this because you (or someone else) have requested the reset of the password for your account.\n\n' + 'Please click on the following link, or paste this into your browser to complete the process:\n\n' + @@ -64,4 +64,4 @@ router.get('/', function(req, res) }); }); -module.exports = router; \ No newline at end of file +module.exports = router; diff --git a/app/routes/reset.js b/app/routes/reset.js index 0b4e661..1d47559 100644 --- a/app/routes/reset.js +++ b/app/routes/reset.js @@ -55,7 +55,7 @@ router.post('/:token', function(req, res) { var mailOptions = { to: user.email, - from: 'passwordreset@demo.com', + from: process.env.SMTP_FROM_USER || 'passwordreset@demo.com', subject: 'Your password has been changed', text: 'Hello,\n\n' + 'This is a confirmation that the password for your account ' + user.email + ' has just been changed.\n' @@ -73,4 +73,4 @@ router.post('/:token', function(req, res) }); }); -module.exports = router; \ No newline at end of file +module.exports = router;