diff --git a/deploy/lambda-env.json b/deploy/lambda-env.json index a0773ba6a..1ae812b9d 100644 --- a/deploy/lambda-env.json +++ b/deploy/lambda-env.json @@ -35,9 +35,11 @@ "TWILIO_ACCOUNT_SID": "XXXXXXXXXXXXXXXXXXXXXXXXXXX", "TWILIO_AUTH_TOKEN": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx", "TWILIO_STATUS_CALLBACK_URL": "https://spoke.example.com/twilio-message-report", - "MAILGUN_SECRET_KEY": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX", - "MAILGUN_DOMAIN": "example.com", - "MAILGUN_FROM_EMAIL": "no-reply@example.com", + "EMAIL_HOST": "", + "EMAIL_HOST_PASSWORD": "", + "EMAIL_HOST_USER": "", + "EMAIL_HOST_PORT": "", + "EMAIL_FROM": "help@example.com", "ROLLBAR_CLIENT_TOKEN": "set_this_in_production", "ROLLBAR_ACCESS_TOKEN": "set_this_in_production", "ROLLBAR_ENDPOINT": "https://api.rollbar.com/api/1/item/" diff --git a/deploy/spoke-pm2.config.js.template b/deploy/spoke-pm2.config.js.template index 819f9dc2d..504ce46cf 100644 --- a/deploy/spoke-pm2.config.js.template +++ b/deploy/spoke-pm2.config.js.template @@ -37,9 +37,11 @@ const env_production = { TWILIO_STATUS_CALLBACK_URL:'http://example.com:3000/twilio', SSH_TUNNEL_TARGET:'exampleuser@example.com', SSH_TUNNEL_FORWARDS:'3000:127.0.0.1:6379', - MAILGUN_SECRET_KEY:'', - MAILGUN_DOMAIN:'', - MAILGUN_FROM_EMAIL:'', + EMAIL_HOST: "", + EMAIL_HOST_PASSWORD: "", + EMAIL_HOST_USER: "", + EMAIL_HOST_PORT: "", + EMAIL_FROM: "help@example.com", ROLLBAR_CLIENT_TOKEN:'', ROLLBAR_ACCESS_TOKEN:'', ROLLBAR_ENDPOINT:'https://api.rollbar.com/api/1/item/' diff --git a/package.json b/package.json index 8889e7cc7..ce15e17ec 100644 --- a/package.json +++ b/package.json @@ -95,11 +95,11 @@ "json-loader": "^0.5.4", "knex": "^0.13.0", "lodash": "^4.13.1", - "mailgun-js": "^0.7.11", "material-ui": "^0.15.2", "minilog": "^3.0.1", "moment": "^2.14.1", "nexmo": "^1.0.0-beta-7", + "nodemailer": "^4.0.1", "papaparse": "^4.1.2", "passport": "^0.3.2", "passport-auth0": "^0.5.2", @@ -110,7 +110,7 @@ "react-apollo": "^0.3.15", "react-async-script": "^0.6.0", "react-chartjs": "^0.7.3", - "react-dom": "^15.2.1", + "react-dom": "^15.6.1", "react-formal": "^0.18.5", "react-router": "^2.5.2", "react-router-redux": "^4.0.5", diff --git a/src/server/mail.js b/src/server/mail.js index 48357927f..30ffe28d0 100644 --- a/src/server/mail.js +++ b/src/server/mail.js @@ -1,9 +1,15 @@ import { log } from '../lib' -import mailgunFactory from 'mailgun-js' -const mailgun = mailgunFactory({ - apiKey: process.env.MAILGUN_SECRET_KEY, - domain: process.env.MAILGUN_DOMAIN -}) +import nodemailer from 'nodemailer' + +let transporter = nodemailer.createTransport({ + host: process.env.EMAIL_HOST, + port: process.env.EMAIL_HOST_PORT, + secure: true, + auth: { + user: process.env.EMAIL_HOST_USER, + pass: process.env.EMAIL_HOST_PASSWORD + } +}); export const sendEmail = async ({ to, subject, text, replyTo }) => { log.info(`Sending e-mail to ${to} with subject ${subject}.`) @@ -12,15 +18,14 @@ export const sendEmail = async ({ to, subject, text, replyTo }) => { return null } const params = { - from: process.env.MAILGUN_FROM_EMAIL, + from: process.env.EMAIL_FROM, to, subject, text } if (replyTo) { - params['h:Reply-To'] = replyTo + params['replyTo'] = replyTo } - - return mailgun.messages().send(params) + return transporter.sendMail(params) }