1、nodejs使用nodemailer插件发送邮件,所以需要安装改插件npm install nodemailer --save
2、编写mail.js来完成邮件发送功能
var nodemailer = require("nodemailer");
/*
* 这里的pass有可能不是163邮箱登录地址,可能是授权码。也就是在开启pop3等
* 服务的时候填写的授权码。我在开发过程中就是用的授权码。
*/
var transporter = nodemailer.createTransport({
host: 'smtp.163.com',
secure: false,
port: 25,
auth: {
user: 'test@163.com',
pass: 'test'
}
});
/*
* mailData就是jade与数据结合之后的html内容
*/
function sendMail(mailData, callback){
transporter.sendMail(mailData, function(error, response){
if (error) {
console.log(error);
if(callback) {
callback(err);
}
} else {
console.log("Message sent: " + response.message);
if (callback) {
callback();
}
}
transporter.close();
});
}
exports.sendMail = sendMail;
3、在nodejs的server.js中添加一个公共方法,来完成数据组装和发送调用
/*
* template就是jade模板, data就是模板需要的数据, 调用express的render方法来生成html
*/
function sendEmail(data) {
app.render(data.template, data, function (error, html) {
var mailData = {
from: '"Scrumblr" <test@163.com>',
to: data.to || toDefault,
subject: data.subject || 'Scrumblr notification!',
encoding: 'utf-8',
textEncoding: 'utf-8',
html: html
};
mail.sendMail(mailData);
});
}
4、调用这个公共功能
sendEmail({
template: "./email_templates/no_worklog_mail.jade",
subject: msgTem.NO_WORK_LOG.title,
title: msgTem.NO_WORK_LOG.title,
description: msgTem.NO_WORK_LOG.description,
to: toUserEmails.join(',')
});
第一次写博客,主要是为自己做一下记录,方便日后查阅!