Guest User

Untitled

a guest
Jan 10th, 2018
341
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.11 KB | None | 0 0
  1. var nodemailer = require('nodemailer');
  2. var emailTemplates = require('email-templates');
  3. var sendMailTransport = require('nodemailer-smtp-transport');
  4.  
  5. module.exports = {
  6. _template: null,
  7. _transport: null,
  8.  
  9. init: function (config) {
  10. var d = Q.defer();
  11.  
  12. emailTemplates(config.emailTplsDir, function (err, template) {
  13. if (err) {
  14. return d.reject(err);
  15. }
  16.  
  17. this._template = template;
  18. this._transport = nodemailer.createTransport({ service: 'Sendgrid', auth: { user: process.env.SENDGRID_USERNAME, pass: process.env.SENDGRID_PASSWORD } });
  19. return d.resolve();
  20. }.bind(this));
  21.  
  22. return d.promise;
  23. },
  24.  
  25. send: function (from, to, subject, text, html) {
  26. var d = Q.defer();
  27. var params = {
  28. from: from,
  29. to: to,
  30. subject: subject,
  31. text: text
  32. };
  33.  
  34. if (html) {
  35. params.html = html;
  36. }
  37.  
  38. this._transport.sendMail(params, function (err, res) {
  39. if (err) {
  40. console.error(err);
  41. return d.reject(err);
  42. } else {
  43. return d.resolve(res);
  44. }
  45. });
  46.  
  47. return d.promise;
  48. },
  49.  
  50. sendMail: function (from, to, subject, tplName, locals) {
  51. var d = Q.defer();
  52. var self = this;
  53. this.init({ emailTplsDir: "email-templates" }).then(function () {
  54. this._template(tplName, locals, function (err, html, text) {
  55. if (err) {
  56. console.error(err);
  57. return d.reject(err);
  58. }
  59.  
  60. self.send(from, to, subject, text, html)
  61. .then(function (res) {
  62. return d.resolve(res);
  63. });
  64. });
  65. }.bind(this));
  66.  
  67. return d.promise;
  68. }
  69. };
  70.  
  71. var mailer = require('../../utils/mailSender');
  72.  
  73. var locals = { name: "New User", siteName: "Takwinland" };
  74. mailer.sendMail('contact@takwinland.com', "dhaker.odesk@gmail.com", 'Welcome!', 'signup', locals).then(function () {
  75. res.status(200).send('A welcome email has been sent to ' + "dhaker.odesk@gmail.com" + '.');
  76. }, function (err) {
  77. if (err) { return res.status(500).send({ msg: err.message }); }
  78. });
Add Comment
Please, Sign In to add comment