46-Nodemailer系统发用户邮件博客后端ApiNodeJsExpressMysql实战

10次阅读

共计 1400 个字符,预计需要花费 4 分钟才能阅读完成。

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');
            });
        });
    },
};

正文完
 0