记录下自己学习过程,有说的不对的地方请大家见谅并指出
这里以QQ邮箱作为演示
第一步
进入QQ邮箱并登录 => 点击设置 => 点击账户 然后往下滑,找到他。如果没有开启的话,点击开启即可
第二步
Nodejs项目中下载 nodemailer
npm i nodemailer 下载后创建一个文件,将他引入
//引入nodemailer.js
const nodemailer = require("nodemailer");
//创建一个smtp服务器
const config = {
host: "smtp.qq.com", // 邮箱服务的主机,QQ邮箱为例
port: 465,// 邮箱服务的主机对应的端口
auth: {
user: "xxx@qq.com", // 这里是你使用哪个QQ邮箱账号发送验证码
pass: "xxx", //邮箱的授权码,不是注册时的密码,等你开启的stmp服务自然就会知道了
},
};
// 创建一个SMTP客户端对象
const transporter = nodemailer.createTransport(config);
//发送邮件
module.exports = function (mail) {
transporter.sendMail(mail, function (error, info) {
if (error) {
return console.log(error);
}
console.log("mail sent:", info.response);
});
};
然后在发送验证码的接口文件中引入该文件
const nodemailer = require("../utils/nodemailer");
var mail = {
// 发件人
from: "<2474373421@qq.com>",
// 主题
subject: "注册", //邮箱主题
// 收件人
to: email, //前台传过来的邮箱
// 邮件内容,HTML格式
text: "您的验证码是:" + code + ",请不要告诉别人您的验证码", //发送验证码
};
nodemailer(mail); //发送邮件
});
code验证码生成
// 获取六位数随机数
const createSixNum = () => {
var Num = "";
for (var i = 0; i < 6; i++) {
Num += Math.floor(Math.random() * 10);
}
return Num;
};
验证码校验可以根据自己操作来,我这里是新建了一个表用来单独存储用户邮箱及验证码