安装 nodemailer
npm install nodemailer -s
开通QQ邮箱的 IMAP/SMTP服务(这里以QQ邮箱为例)
1.登录QQ邮箱 找到 设置 -> 账户
2.开启服务 按照提示信息发送短信进行验证
3.发送验证码之后点击我已发送
然后会获得授权码,把授权码复制下来,一会要用!
编写发送邮件代码
创建mail.js文件
"use strict";
// 引入nodemailer
const nodemailer = require("nodemailer");
// 创建发送邮件的请求对象
let transporter = nodemailer.createTransport({
host: "smtp.qq.com", // 发送方邮箱类型(这里为QQ邮箱)
port: 465, // 端口号
secure: true, // true for 465, false for other ports
auth: {
user: '********@qq.com', // 发送方的邮箱
pass: '************', // 授权码(你刚刚复制下来的授权码)
},
});
// 邮件发送方法
function send(mail,code){
// 邮件信息
let mailobj = {
from: '"Fred Foo" <*********@qq.com>', // <*处填写你的QQ号码>
to: mail, // list of receivers
subject: "验证码", // Subject line
text: `您的验证码是${code},有效期为五分钟`, // 纯文本 只能是字符串类型(${code}为发送的内容)
// html: "<b>Hello world?</b>", // html格式
}
return new Promise((resolve,reject) => {
// 发送邮件
transporter.sendMail(mailobj,(err,data)=> {
if(err){
reject('发送失败')
}else{
resolve('发送成功')
}
});
})
}
module.exports = {send} // 导出方法
现在邮箱验证就封装好了!
调用方法,发送邮箱验证码
新建一个sendMailCode.js文件 引入刚刚封装的文件
// 引入 注意路径
let Mail = require('./mail');
let mail = 'xxxxxxxxx@qq.com'; // 接收方的邮箱
let code = '3682'; // 模拟一个验证码
// 调用封装方法
Mail.send(mail,code).then(err => {
if(err){
console.log('发送失败');
}else{
console.log('发送成功');
}
});
然后在node环境下执行sendMailCode.js文件
node sendMailCode.js