在注册账号的时候通常会用到手机验证码的和邮箱验证码来做验证,而邮件验证码的好处在于免费。而nodejs有相应的邮件发送到的第三方模块:nodemailer。下面使用nodemaile来发送邮件:

  1. 首先下载nodemailer模块----> npm install init --y //初始化 npm install
    nodemailer --s//下载nodemailer模块到当前文件夹
  2. 新建demo.js文件
    代码:
//demo.js
"use strict";
//引入模块
const nodemailer = require("nodemailer"); 

  //创建邮件发送请求对象 
  let transporter = nodemailer.createTransport({
   
  //如果选择使用其他邮箱发送需要修改此项,
  //方法:找到node_modules/nodemailer/lib/well-known下的 service.json文件
  //在文件内搜索qq就可找到这个
  //将相应信息填入即可
    host: "smtp.qq.com", //发送方smtp
    port: 465,                  //端口号
    secure: true, // 使用465的端口则为true,使用其他端口为false
    auth: {
   		
      user: 'yourqqmail@qq.com', // 发送方邮箱地址
      pass: '这里填写smtp授权码' // smtp 授权码,获取授权方法看下面
    }
  });

  // send mail with defined transport object
  let mail={
   
    from: '"Fred Foo 👻" <yourqqmail@qq.com>', // sender address这里的邮箱要跟上面的发送方邮箱一致
    to: "recieveri@qq.com, reciever2@qq.com", // list of receivers 可选择群发或者单独发
    subject: "Hello ✔", // Subject line 标题
    text: "您的验证码为123434", // plain text body
    html: "<b>Hello world?</b>" // html body//这里可以发送html页面
  }
  transporter.sendMail(mail)//调用sendMail方法发送邮件

以上代码主要涉及:
创建邮件发送请求对象–>创建要发送的邮件信息对象–>发送邮件信息,比较简单。

获取授权码的方法

首先登录qq邮箱,点击设置,点击账号,划到下面。

如果stmp服务关闭的话就点击开启,然后按照引导发送短信, 会得到一串字符串,复制粘贴到要填入授权码那块就可以了。 发送邮件效果如下