diff --git a/package.json b/package.json index 4c1de2eb3e..ab0c1a9e47 100644 --- a/package.json +++ b/package.json @@ -36,6 +36,7 @@ "node-gcm": "^0.14.0", "parse": "^1.7.0", "request": "^2.65.0", + "sendgrid": "^2.0.0", "winston": "^2.1.1" }, "devDependencies": { diff --git a/src/Adapters/Email/SimpleSendgridAdapter.js b/src/Adapters/Email/SimpleSendgridAdapter.js new file mode 100644 index 0000000000..68f584cd7c --- /dev/null +++ b/src/Adapters/Email/SimpleSendgridAdapter.js @@ -0,0 +1,30 @@ +import SendGrid from 'sendgrid'; + +let SimpleSendGridAdapter = mailOptions => { + if (!mailOptions || !mailOptions.apiKey || !mailOptions.fromAddress) { + throw 'SimpleSendGridAdapter requires an API Key.'; + } + let sendgrid = SendGrid(mailOptions.apiKey); + + let sendMail = ({to, subject, text}) => { + return new Promise((resolve, reject) => { + sendgrid.send({ + from: mailOptions.fromAddress, + to: to, + subject: subject, + text: text, + }, function(err, json) { + if (err) { + reject(err); + } + resolve(json); + }); + }); + } + + return Object.freeze({ + sendMail: sendMail + }); +} + +module.exports = SimpleSendGridAdapter