node 使用qq邮箱发送邮件 进行验证码校验

简介: node 使用qq邮箱发送邮件 进行验证码校验

一、安装邮箱发送模块依赖
npm i nodemailer -s
复制代码

yarn add nodemailer
复制代码
二、开启 POP3/SMTP 服务
你首先要有一个邮箱;由于需要使用 SMTP 方式发送,你还需要开启相关功能。你可以登录你的邮箱,然后开启这个设置。
以 QQ 邮箱为例:设置->账户->开启服务 (选择 POP3/SMTP 服务)->点击开启 (需要发送短信开启)->授权码生成。

三、创建 email.js
'use strict'
const nodemailer = require('nodemailer')

// 创建发送邮件的对象
let transporter = nodemailer.createTransport({
host: 'smtp.qq.com', // 发送方邮箱 qq 通过lib/wel-konw
port: 465,
secure: true, // true for 465, false for other ports
auth: {

user: '******@qq.com', // 发送方邮箱地址
pass: '******' // mtp 验证码 这个有了才可以发送邮件,可以qq邮箱去查看自己的码

}
})

function send(mail, code) {
// 邮件信息
let mailobj = {

from: '"发送者姓名" <发送者邮箱>', // sender address
to: mail, // 接收者邮箱 可以是多个 以,号隔开
subject: 'hello', // Subject line
// 发送text或者html格式
text: `xxxxx`
// html:`<h1>xxxx</h1>`

}

return new Promise((reslove, reject) => {

// 发送邮件
transporter.sendMail(mailobj, (err, data) => {
  if (err) {
    console.log(err)
    reject()
  } else {
    reslove()
  }
})

})
}
复制代码
四、发送验证码接口
//验证码就放着内存中了。正常开发也可以放redis 或者 数据库内
let codes = {}
let count = {}
router.post('/getMailCode', (req, res) => {
let { mail } = req.body
// 我前端已做邮箱校验 这里我只做了是否有值判断
if (mail) {

let code = parseInt(Math.random() * 10000) // 随机验证码
codes[mail] = code
count[mail] = 3 // 有效次数
//验证码5分钟内有效 过了5分钟清除
setTimeout(() => {
  delete codes[mail]
  delete count[mail]
}, 300000)
mailSend
  .send(mail, code)
  .then(() => {
    res.send({ code: 200, msg: '验证码发送成功' })
  })
  .catch(err => {
    res.send({ code: -1, msg: '验证码发送失败' })
  })

} else {

res.send({ err: -1, msg: '参数错误' })

}
})

结语
如果是用短信验证码的话,无疑成本高,因为短信是收费的。想想做一个学习用的网站,还是选择邮件发送验证码吧。

目录
相关文章
|
7月前
|
小程序 前端开发 JavaScript
node使用nodemailer在本地可以正常发送邮件,放服务器后无法发送报错
node使用nodemailer在本地可以正常发送邮件,放服务器后无法发送报错
109 0
node使用nodemailer发送邮件
node使用nodemailer发送邮件
|
2月前
|
C#
C# 图形验证码实现登录校验代码
C# 图形验证码实现登录校验代码
97 2
|
3月前
|
前端开发 PHP
ThinkPHP 验证码扩展库的使用,以及多应用模式下,如何自定义验证码校验规则
本文介绍了在ThinkPHP框架中使用验证码扩展库的方法,包括安装验证码扩展库、在页面中使用验证码、自定义验证码配置以及校验验证码的步骤和代码示例。
ThinkPHP 验证码扩展库的使用,以及多应用模式下,如何自定义验证码校验规则
|
3月前
|
存储 JSON 前端开发
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
本文介绍了在Node.js中使用token实现前端验证码和登录功能的详细流程,包括生成验证码、账号密码验证以及token验证和过期处理。
66 0
node使用token来实现前端验证码和登录功能详细流程[供参考]=‘很值得‘
|
4月前
|
NoSQL Java Redis
认证服务---整合短信验证码,验证码倒计时,验证码防刷校验 【一】
这篇文章介绍了如何在分布式微服务项目中整合短信验证码服务,包括使用阿里云短信验证接口、将短信验证功能集成到第三方服务中、其他服务的远程调用,以及通过Redis实现验证码防刷机制的代码实现和遇到的问题解决方案。
|
6月前
|
缓存 NoSQL Java
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
案例 采用Springboot默认的缓存方案Simple在三层架构中完成一个手机验证码生成校验的程序
118 5
|
5月前
【node】图片验证码(svg-captcha)
【node】图片验证码(svg-captcha)
294 0
|
7月前
|
存储 缓存 NoSQL
node实战——koa给邮件发送验证码并缓存到redis服务(node后端储备知识)
node实战——koa给邮件发送验证码并缓存到redis服务(node后端储备知识)
95 0
|
7月前
|
前端开发 JavaScript
vue3实现验证码校验的功能
最近想实现使用vue3实现一个简易的前端验证码校验的功能,就花了点时间实现了,这只是一个简易版的,但是用在项目中是没有啥问题的,废话不多说,先来看下最终实现的效果。写着玩的 哈哈
389 0
下一篇
DataWorks