Nav apraksta

mailer.js 1.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. var settings = require('./config');
  2. var nodemailer = require('nodemailer');
  3. var smtpPool = require('nodemailer-smtp-pool');
  4. var transporter;
  5. var Mailer = module.exports = {
  6. init: function() {
  7. return function(done) {
  8. if (settings.general.mailer.service == 'Gmail') {
  9. // Initializing XOAuth2
  10. var generator = require('xoauth2')
  11. .createXOAuth2Generator(settings.general.mailer.auth);
  12. // Create a pool of connections
  13. var pool = smtpPool({
  14. service: settings.general.mailer.service,
  15. auth: {
  16. xoauth2: generator
  17. }
  18. });
  19. // Create a transport
  20. transporter = nodemailer.createTransport(pool);
  21. done();
  22. return;
  23. }
  24. // Create a pool of connections for specific mail service
  25. var pool = smtpPool({
  26. service: settings.general.mailer.service,
  27. auth: settings.general.mailer.auth
  28. });
  29. // Create a transport
  30. transporter = nodemailer.createTransport(pool);
  31. done();
  32. };
  33. },
  34. sendMail: function(msg) {
  35. return function(done) {
  36. transporter.sendMail(msg, done);
  37. };
  38. },
  39. sendMailFromService: function(to, subject, html) {
  40. return Mailer.sendMail({
  41. from: settings.general.mailer.sender.name + ' <' + settings.general.mailer.sender.address + '>',
  42. to: to,
  43. subject: subject,
  44. html: html
  45. });
  46. }
  47. };