nodemailer是在nodejs下发邮件的模块。
前期准备
通过npm取得两个模块
npm install nodemailer --save
npm install nodemailer-smtp-transport --save
邮件发送实现mailer.js
var nodemailer = require('nodemailer');
var smtpTransport = require('nodemailer-smtp-transport');
function mail(to,subject,html) {
// 开启一个 SMTP 连接池
var transport = nodemailer.createTransport(smtpTransport({
host: "smtp.163.com",// 主机
secure: true,// 使用 SSL
secureConnection: true,// 使用 SSL
port: 465,// SMTP 端口
auth: {
user: "example@163.com",// 账号,使用时替换为自己的邮箱账号
pass: "test123321" // 密码,使用时替换为自己的密码
}
}));
// 设置<a href="https://www.jb51.cc/tag/youjian/" target="_blank" class="keywords">邮件</a><a href="https://www.jb51.cc/tag/neirong/" target="_blank" class="keywords">内容</a>
var mailOptions = {
from: "windleaflyh@163.com",// 发件地址
to: to,// 收件列表
subject: subject,// <a href="https://www.jb51.cc/tag/biaoti/" target="_blank" class="keywords">标题</a>
text: "hello",html: html // html <a href="https://www.jb51.cc/tag/neirong/" target="_blank" class="keywords">内容</a>
}
// <a href="https://www.jb51.cc/tag/fasongyoujian/" target="_blank" class="keywords">发送邮件</a>
transport.sendMail(mailOptions,function(error,response) {
if (error) {
console.error(error);
} else {
console.log(response);
}
transport.close(); // 如果没用,<a href="https://www.jb51.cc/tag/guanbi/" target="_blank" class="keywords">关闭</a>连接池
});
}
exports.mail = mail;
route调用
var express = require('express');
var router = express.Router();
var mailer = require('../utils/mailer'); //这里调用模块。
/我把nodemailer调用方法封装为一个函数,叫mail,其中有三个参数,一是收件人,二是邮件主题,三是邮件内容。邮件内容支持HTML代码/
router.get('/',function(req,res,next) {
mailer.mail("windleaflyh@163.com","用户密码找回","你的密码找回验证码是8928,打死都不要告诉别人");
//res.render('index',{ title: 'Express' });
});
module.exports = router;