Node.js nodemailer+express实现邮箱发送
1、npm init -y 初始化目录结构
2、安装nodemailer、express、body-parser 安装命令为: npm install nodemailer 、npm install express --save 、npm install body-parser
3、新建index.js
var express = require('express');
var app = express();
var nodemailer = require("nodemailer");
var bodyParser = require('body-parser'); //解析,用req.body获取post参数*
app.use(express.json());
app.use(express.urlencoded({
extended: false
}));
//配置跨域
app.all('*', function (req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Content-Type");
res.header("Access-Control-Allow-Methods", "PUT,POST,GET,DELETE,OPTIONS");
res.header("X-Powered-By", ' 3.2.1');
res.header("Content-Type", "application/json;charset=utf-8");
next();
});
app.get('/email', function (req, res) {
var code = "";
//生成随机的六位数验证码
for (var i = 0; i < 6; i++) {
var radom = Math.floor(Math.random() * 10);
code += radom;
}
const email = req.query.email
var transporter = nodemailer.createTransport({
service: 'qq',
host: 'smtp.qq.com',
auth: {
user: 'xxxxxxxxxxx@qq.com',//发送者的邮箱
pass: 'xxxxxxxx' //授权码,通过QQ邮箱内获取
}
});
var mailOptions = {
from: 'xxxxxxxx@qq.com', // 发送者
to: email, // 接受者,可以同时发送多个,以逗号隔开
subject: '京东欢迎来登录', // 标题
// text: '您本次的验证码是:', // 文本
html: `<h2>欢迎登录:本次的验证码是${code}</h2><h3>
<img src='https://sss-1306551685.cos.ap-guangzhou.myqcloud.com/MobileShop/1.jpg'/></h3>`
};
transporter.sendMail(mailOptions, function (err, info) {
if (err) {
res.json({
status: 201,
message: err,
})
} else {
//返回数据
res.json({
status: 201,
message: info,
code: code
})
}
});
})
//配置端口
var server = app.listen(4000, '127.0.0.1', function () {
var host = server.address().address;
var port = server.address().port;
console.log("地址为 http://%s:%s", host, port); //输出为 http://127.0.0.1:3000
})
4、打开终端 输入nodemon index.js 启动服务
http://127.0.0.1:4000/email
使用postman进行接口测试