最近在做一个demo的时候需要使用到了邮件发送验证码的需求(不使用短信验证码的原因主要还是短信验证码需要花费~~),那继node路完结后开始推出番外篇,说说如何使用nodejs模块向邮箱发送信息;
注: 今天我们使用的是QQ邮箱,其他的比如126邮箱也都是类似的
- 首先第一步,使用node操作邮箱发送信息我们需要开启QQ邮箱的POP服务:
开启步骤: 登录扣扣邮箱 -> 设置 -> 账户 -> 找到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务点击开启 -> 生成授权码 - 开启邮箱的POP服务后,生成授权码,开始node代码的编写:
node提供了一个nodemailer模块帮助我们完成邮件的发送,首先我们安装nodemailer模块: npm i nodemailer --save
开始
// 1. 导入nodemailer
const nodeMailer = require("nodemailer")
// 定义一个生成验证码的函数
function getCode(){
return Math.random().toString(16).slice(2, 6).toUpperCase()
}
//创建一个传送器
const transporter = nodeMailer.createTransport({
host: "smtp.qq.com", //邮件发送的域名,我们这里使用的是QQ的服务
port: 587, // SMTP端口号
secure: false, //secure:true for port 465, secure:false for port 587
auth: {
user: "1084983891@qq.com", //邮件发送方的邮箱
pass: "XXXX" //我们开启POP服务生成的授权码
}
})
//配置发件箱和收件箱的信息
const mailOptions = {
from: "10849838891@qq.com", //发件箱
to: "10849838891@qq.com", //收件箱地址
subject: "<测试邮件>注册验证码:", //邮件的标题
html: `您的注测码是:${getCode()}`
}
// 发送邮件:
transporter.sendMail(mailOptions, (err, info) => {
if(err){
throw new Error("邮件发送失败!")
return
}
console.log(info.response)
})
好了,就这样简单的几部我们就实现了邮件的发送,在之后的项目中大家便可以使用邮件发送进行一些验证码校验之类的事情了.