借助nodemailer库快速实现发送邮件
安装nodemailer
npm i nodemailer
controller/emailSendController.js下实现发送功能
const nodemailer = require("nodemailer");
class EmailSendController {
sendEmailFunc (req, res) {
const transporter = nodemailer.createTransport({
service: '163', // 邮箱
secure: true, // 安全的发送模式
// port: 465,
auth:{
user: 'test@163.com', // 发件人邮箱
pass: 'XYIDERUDVKTCLXXX' // 授权码
}
});
// 六位数随机验证码生成
let code = Math.random().toString(16).slice(2, 8).toUpperCase();
// 发送邮件
transporter.sendMail(
{
// 发件人邮箱
from: 'test@163.com',
// 邮件标题
subject: '测试验证码',
// 目标邮箱
to: '111222998@qq.com',
// 邮件内容
text: `您的验证码是:${code},如非本人操作,请忽略`
},
(err, data) => {
if (err) {
console.error(err);
res.send({
code: 0,
msg: "error",
data: err,
});
}
else{
console.log(data);
res.send({
code: 0,
msg: "sucess",
data: data,
});
}
}
);
}
}
module.exports = new EmailSendController()
在routes/user.js写一个接口测试
const express = require("express");
const router = express.Router();
router.get('/sendEmail', sendEmailFunc)
module.exports = router;
启动服务然后访问路由:http://localhost:3000/sendEmail,查看发送目标邮件是否接收到验证码即可
注意事项:
发送人首次使用163.com邮箱需要在邮箱的“设置”里面开启POP3/SMTP/IMAP的
IMAP/SMTP服务,以便获取授权验证码,以上模拟的例子:XYIDERUDVKTCLXXX 就是授权验证码,每个人的都不一样,自己操作获取即可