UNPKG

postboy

Version:

A command line tool to build emails

61 lines (50 loc) 1.75 kB
var nodemailer = require('nodemailer'); var smtpTransport = require('nodemailer-smtp-transport'); module.exports = function(config, body){ if(typeof config.send === 'undefined') return console.log('No settings for mail found in config file'); var mail_opts = config.send; var using_gmail = false; if (typeof mail_opts.login === 'undefined') return console.log('Login is required.') if (typeof mail_opts.to === 'undefined') return console.log('"to" field is missing in config file.'); if(!mail_opts.server && mail_opts.login && mail_opts.login.match(/^.*@gmail.com$/)){ using_gmail = true; } else if (typeof mail_opts.server === 'undefined') { return console.log('No server setting found'); } if(typeof mail_opts.password === 'undefined') mail_opts.password = ''; if(typeof mail_opts.subject === 'undefined') mail_opts.subject = 'Postboy test mail '+(new Date()).toString(); if(typeof mail_opts.from === 'undefined') mail_opts.from = ''; if(typeof mail_opts.port === 'undefined') mail_opts.port = 25; var transport; if(using_gmail){ transport = nodemailer.createTransport({ service: 'gmail', auth: { user: mail_opts.login, pass: mail_opts.password } }); } else { transport = nodemailer.createTransport(smtpTransport({ host: mail_opts.server, port: mail_opts.port, auth: { user: mail_opts.login, pass: mail_opts.password } })); } var mailOptions = { from: mail_opts.from, to: mail_opts.to, subject: mail_opts.subject, html: body }; transport.sendMail(mailOptions, function(error, info){ if (error) { return console.log(error); } console.log('Message sent', info); }); };