在注册账号的时候通常会用到手机验证码的和邮箱验证码来做验证,而邮件验证码的好处在于免费。而nodejs有相应的邮件发送到的第三方模块:nodemailer。下面使用nodemaile来发送邮件:
- 首先下载nodemailer模块----> npm install init --y //初始化 npm install
nodemailer --s//下载nodemailer模块到当前文件夹 - 新建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服务关闭的话就点击开启,然后按照引导发送短信, 会得到一串字符串,复制粘贴到要填入授权码那块就可以了。 发送邮件效果如下