nowindxdw
11/2/2017 - 8:16 AM

email by nodejs

var path = require('path');
var sysconf = require(path.join(__dirname,'../config/config.json'));
var nodeMailer = require('nodemailer');

/**
 * 邮件发送
 * @param dynamicConfig 传入参数,如邮件接收者地址,登陆者等。
 * @param callback
 */
exports.sendEmail = function(dynamicConfig, callback) {

    var emailConf = {
        fromUser : sysconf.email.fromUser,
        passWord : sysconf.email.passWord,
        host : sysconf.email.host,
        port : sysconf.email.port,

        subject : dynamicConfig.subject,
        //text : dynamicConfig.text,
        content : dynamicConfig.content,
        sendTo : dynamicConfig.sendTo,
        operatorName : dynamicConfig.operatorName
    };

    var smtpConfig = {
        host: emailConf.host,
        port: emailConf.port,
        secure: true, // use SSL
        auth: {
            user: emailConf.fromUser,
            pass: emailConf.passWord
        }
    };

    var transporter = nodeMailer.createTransport(smtpConfig);

    // setup e-mail data with unicode symbols
    var mailOptions = {
        from: dynamicConfig.senderName + ' <' + emailConf.fromUser + '>', // sender address
        to: emailConf.sendTo, // list of receivers
        subject: emailConf.subject||'Hello ✔', // Subject line
        //text: 'Hello world☺', // plaintext body
        html: '<b>' + emailConf.operatorName + ":"+'<br/>'+emailConf.content+'</b>' // html body
    };

    // send mail with defined transport object
    transporter.sendMail(mailOptions, function(error, info) {
        if(error) {
            console.log(error);
            return callback(error);
        }
        console.log('Message sent: ' + info.response);
        callback(null, info.response);
    });
};