作者:CCTV知府影 | 来源:互联网 | 2023-10-10 15:57
node使用Nodemailer发送邮件,可用于登录注册的验证码哟-在开发个人开源项目或者个人博客的时候,需要用户进行认证登录,首先我们想到的是手机验证码,但是在各大厂商验证码都需
在开发个人开源项目或者个人博客的时候,需要用户进行认证登录,首先我们想到的是手机验证码,但是在各大厂商验证码都需要收费,这时候我们可以用邮件进行发送验证码。主要是免费!
1.环境及Nodemailer安装介绍
我这边使用的是express,各位可以使用原生node 或者 koa都是可以的
安装
npm i nodemailer -S
邮箱权限申请流程
我这里拿QQ邮箱为例
1.开启SMTP服务
位置: 邮箱设置 -> 帐户 -> 往下滑,找到SMTP配置,如下图
点击开启,弹出
有令牌的可以使用手机令牌(QQ安全中心APP),没有的话只能花费0.1元发送短信开启啦。
开启之后生成一串的授权码,我们把它先复制起来
接下来进入代码模块
代码配置
引入nodemailer,并配置如下图
再来个send函数配置,详解都在注释里
发送回调
实战操作
按照如上配置, 写个接口
我这边只是随机生成四个数字,作为实验。
我们来到界面,进行操作
输入邮箱
打开邮箱查看效果
是不是很简单。
源码送上,加上邮件装饰布局哦
const nodemailer = require('nodemailer')
const obj = {
transporter: nodemailer.createTransport({
host: 'smtp.qq.com', // 默认是这个
port: 465,
auth: {
user: '你的邮箱',
pass: '你的邮箱授权码'
}
}),
send: function(mail, content) {
const mailOptiOns= {
// 发送方的邮箱地址
from: '注册验证码<你的邮箱>',
to: mail, // 对方邮箱
// cc : '' //抄送 用于多人邮件
// bcc : '' //密送
subject: '激活验证码',
text: `您的注册验证码为:${content}, 24小时内有效,请谨慎保管`,
html: `
尊敬的用户:您好! 您正在进行ShanJDisc账号申请操作,请在验证码输入框中输入:${content},以完成操作。 注意:此操作可能会修改您的密码、登录邮箱或绑定手机。如非本人操作,请及时登录并修改密码以保证帐户安全 (工作人员不会向你索取此验证码,请勿泄漏!) 此为系统邮件,请勿回复 请保管好您的邮箱,避免账号被他人盗用 ShanJDisc |
`
}
this.transporter.sendMail(mailOptions, (error, info) => {
if (error) {
return console.log(error)
}
console.log('Message sent: %s', info.messageId)
})
}
}
// 抛出对象以接收
module.exports = obj
nodemailer 确实很实用,可以解决个人的开源项目登录注册,或者其他校验操作的验证码校验。本文章属于原创,需要转载请留言哦,如果你觉得这篇文章还阔以的话,请给个小赞赞,你的赞就是我发表文章的动力!