前言

最近项目有点忙,但是还是想在一些零碎的时间中提升自己。于是找了一个自己经常接触,但是没有实现过的功能邮箱验证登录


一、如何进行邮箱验证登录

这里我们需要使用的node 的一个包nodemailer这个包可以帮助我们完成邮箱的发送。

  • 安装

npm install --save nodemailer

  • 代码
    创建一个sendEmail.js文件,代码如下。
const nodeemailer = require('nodemailer');
const transporter = nodeemailer.createTransport({
   
    host: "smtp.qq.com",						// QQ邮箱的SMTP地址
    // host: "smtp.163.com", // 网易邮箱的SMTP地址
    // host: "smtpdm.aliyun.com",// 阿里云的邮件地址
    port: 465,									// 每个邮箱的端口号可能是一样的,一般都使用465,但有些公司使用的就不是465
    secureConnection: false, // 是否使用 SSL
    auth: {
   
        "user": '14*****7@qq.com', 		// 你自己的邮箱的邮箱地址
        "pass": '***********'         // 授权码(不是邮箱密码)
    }
});

module.exports.send =  (mailOptions) => {
   
    transporter.sendMail(mailOptions, function(error, info){
   
        if(error) {
   
            return console.log(error);
        }
        console.log('success')
    });
}

创建app.js,代码如下。

const sendEmail = require('./sendEmail.js');
let emailCode  = (function captchaNumber(){
   
		            let num = [];
		            for (let i = 0; i < 6; i++) {
   
		                num[i] = parseInt(Math.random()*10);
		            }
		            return num.join('');
		        })() 
            //随机生成6位数字
            

let email = {
   
        title: '某某的个人博客网站---邮箱验证码',
        body:` <h1>您好:</h1> <p style="font-size: 18px;color:#000;"> 您的验证码为: <span style="font-size: 16px;color:#f00;"> ${
      emailCode }, </span> 您当前正在某某的个人博客网站注册账号,验证码告知他人将会导致数据信息被盗,请勿泄露 </p> <p style="font-size: 1.5rem;color:#999;">60秒内有效</p> `
    }
let emailCotent = {
   
       from: '14*******3@qq.com', // 发件人地址
       to: '*********@163.com', // 收件人地址,多个收件人可以使用逗号分隔
       subject: email.title, // 邮件标题
       html: email.body // 邮件内容
   };
sendEmail.send(emailCotent)

二、运行

在终端中打开,输入node app.js即可运行。你可以去你的收件邮箱中查看。

总结

这里我们把代码存在了gitee上,大家如果需要的话直接拉取,依赖安装完毕后,使用运行即可。
克隆地址:https://gitee.com/baske/node_send_email.git