nodejs 发送邮箱信息 npm nodemailer 模块

日期: 2017-09-05         浏览量: 4300

nodemailer 是 nodejs 中的邮件发送模块,本文使用的版本为4.0.1


安装模块:

npm install nodemailer

安装完成后项目里面引用此模块:


var nodemalier = require( 'nodemailer' );



QQ邮箱:


发送邮件的邮箱需要开启 POP3/SMTP服务,需要获取授权码,具体操作如下:

登录QQ邮箱 -> 设置 -> 账户 -> 开启POP3/SMTP服务 ,并生产授权码

服务器端代码:


/*发送验证邮箱连接
 * email 需验证邮箱号
 * callback 回调函数 处理发送后的业务逻辑
 * */
function sendmail(email,callback){
    let transporter = nodemailer.createTransport({
        service: 'qq',
        auth: {
            user: '896956692@qq.com',
            pass: 'edwxjmnxwmnbbefj' //授权码,通过QQ获取
        }
    });
    let mailOptions = {
        from: '896956692@qq.com',     // 发送者
        to: email,       
        subject: '测试',      // 标题
        html: '<h4>我的博客:</h4><p><a href="http://fangzhenqi.xin">http://fangzhenqi.xin</a></p>'
    };
    transporter.sendMail(mailOptions, function (err, info) {
        if (err) {
            callback(-1);
        }else{
            callback(1);
        }
    });
}

sendmail('m18811126599@163.com',function(code){
	if(code>0){
		console.log('发送成功')
	}
});


阿里云邮箱: 



npm install nodemailer;

npm install nodemailer-smtp-transport



服务器端代码:



const nodemailer = require('nodemailer');   
const smtpTransport = require('nodemailer-smtp-transport');  
/*
 * 发送邮箱提醒
 * 接受人  receiver
 * 模版信息 template
 * 回调函数 callback
 * */
function sendEmail(receiver, template, callback) {
    let transporter = nodemailer.createTransport(smtpTransport({
        host: "smtp.fangzhenqi.com",    //smtp + 你的域名
        port: 80,                       //阿里云封禁25端口 ,80端口重定向25端口,所以端口使用80
        auth: {
            user: "postmaster@fangzhenqi.com",    //你的阿里云邮箱
            pass: "password"                               // 邮箱密码
        }
    }));
    let mailOptions = {
        from: "postmaster@fangzhenqi.com",       //发送人
        to: receiver,                     //接收人
        subject: "这是来自XXX的邮件",
        html: template
    };
    transporter.sendMail(mailOptions, function (err, info) {
        return callback(err, info);               //回调判断err是否发送成功
    });
}



//调用 sendEmail() 方法
sendEmail('896956692@qq.com'  ,  '你好' , (err ,info)=>{
    //处理业务逻辑
})