NodeMailer
Nodejs发邮件组件Nodemailer
http://blog.fens.me/nodejs-em...
Node.js使用NodeMailer发送邮件
http://www.jianshu.com/p/ee20...
https://github.com/nodemailer...
https://nodemailer.com/about/

咱们日常开发中 有时会遇到需要系统推送邮件给相关用户(例如:注册后发送激活邮箱等等),此时就需要用到NodeMailer;

首先,去xxx云/xxx云/xxx云 邮件推送【以a-l-i为例】

Nodemailer 是一个基于Node的邮件服务模块。

使用 Nodemailer 完成一个发邮件功能非常简单,只需3步:

1引入模块

2创建 transport

3发送邮件

/** * 邮箱服务 * add by wwj * 2017-02-15 23:47:16 */var Promise = require("bluebird");var i18n = require('i18n');var config = require('config-lite'); //配置var nodemailer = require('nodemailer'); //邮件服务module.exports = {    /**     * 发送邮件     */    sendSystemEmail: function(opts) {        return new Promise(function(resolve, reject) {            //检验是否传入邮件接收者 和邮件标题 和邮件内容            if (!opts.to || !opts.subject || !opts.html) {                console.log(i18n.__('pleasePassParamsComplete'));                reject(i18n.__('pleasePassParamsComplete'));                return;            }            //从哪            opts.from = opts.from || '"博客系统" <' + config.email.service + '>';            //如果不是给管理员发 那么抄送管理员            if(opts.to.indexOf(config.email.admin)<0){                //抄送                opts.cc = '"博客系统Admin" <'+ config.email.admin +'>';            }            var transporter = nodemailer.createTransport({                pool: true,                host: 'smtpdm.aliyun.com', //smtp.gmail.com                port: 465, // 25                secure: true, // use SSL, 【不适用https可以关闭】                auth: {                    user: config.email.service,                    pass: config.email.spassword,                },            });            console.log(opts);            transporter.sendMail(opts, function(error, info) {                if (error) {                    console.log("邮件发送失败啦");                    console.log(error);                    reject('error');                    return;                }                if (info) {                    console.log('Message sent success: ' + JSON.stringify(info));                }                resolve('success');            });        });    },};