北鸟南游的博客 北鸟南游的博客
首页
  • 前端文章

    • JavaScript
    • Nextjs
  • 界面

    • html
    • css
  • 计算机基础
  • 后端语言
  • linux
  • mysql
  • 工具类
  • 面试相关
  • 图形学入门
  • 入门算法
  • 极客专栏
  • 慕课专栏
  • 电影资源
  • 儿童动漫
  • 英文
  • 棋牌益智
  • 两性知识
  • 健康知识分享
关于我
归档
GitHub (opens new window)
首页
  • 前端文章

    • JavaScript
    • Nextjs
  • 界面

    • html
    • css
  • 计算机基础
  • 后端语言
  • linux
  • mysql
  • 工具类
  • 面试相关
  • 图形学入门
  • 入门算法
  • 极客专栏
  • 慕课专栏
  • 电影资源
  • 儿童动漫
  • 英文
  • 棋牌益智
  • 两性知识
  • 健康知识分享
关于我
归档
GitHub (opens new window)
  • JavaScript

    • 原生js
    • vue
    • react
    • node
      • commonjs规范requireJs
      • express框架搭建的webSocket请求
      • nodeAPI
      • node基础入门01
      • node基础入门02
      • node基础入门03
      • node基础入门04
      • node基础入门05
      • node基础入门06
      • 通过验证邮箱进行注册信息确认
        • nodemailer进行发送验证码
          • 获取发送邮箱的配置
          • 安装nodemailer并使用
        • resend进行二次确认
          • 首先申请resend账户
          • 安装resend插件
    • nextjs
    • 其它框架
  • 界面

  • front
  • javascript
  • node
北鸟南游
2024-07-01
目录

通过验证邮箱进行注册信息确认

应用在进行注册时,避免恶意攻击和垃圾注册,可以通过验证注册者身份后才能够提交。一般可以使用验证手机短信或者验证邮箱,验证短信会有专门的第三方服务,可以进行付费购买。验证邮箱的正确与否,可以通过以下2种方式进行验证:

  • 使用nodemailer给提交注册的邮箱发送一个随机验证码,然后和后端程序进行比对
  • 使用resend工具让管理员进行二次确认。用在用户量不大,且场景固定下。

# nodemailer进行发送验证码

使用nodemailer发送验证码给指定的邮箱。

# 获取发送邮箱的配置

nodemailer 需要指定一个发送邮箱,用该邮箱给其他邮箱发送短信。那么就需要对发送邮箱进行一些配置处理,主要就是设置SMTP协议。 首先,要开启 smtp 服务,这里以 qq 邮箱举例(其他邮箱也类似) 在邮箱帮助中心 service.mail.qq.com/ (opens new window) 可以搜到如何开启 smtp、imap 等服务:

image.png

开启后可以在邮箱设置>账号中看到

image.png

然后在qq邮箱的右上角,找到账号与安全

image.png

然后进入到安全设置;

image.png

在这里点击生成授权码,这个是 qq 邮箱特有的一个第三方登录密码;生成后要独立保存好,以后就不能再次查看,只能过期或者删除。 申请的qq邮箱第三方登录密码

email_user=0------9@qq.com
email_password=fbrvqsfcllkqbeai
1
2

# 安装nodemailer并使用

npm install -D nodemailer
1

接下来进行代码开发

const nodemailer = require("nodemailer");

const transporter = nodemailer.createTransport({
    host: "smtp.qq.com",
    port: 587,
    secure: false,
    auth: {
        user: '0------9@qq.com',
        pass: '你的授权码'
    },
});

async function main() {
  const info = await transporter.sendMail({
    from: '0------9@qq.com',
    to: "接收信息的邮箱",
    subject: "用于注册xx网站验证", 
    // 生成一个随机6位数字,在服务端也要有备份保留,一般放到redis中,设置5分钟过期
    text: "生成一个随机6位数字"
  });

  console.log("邮件发送成功:", info.messageId);
}

main().catch(console.error);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

设置好,就可以看到要注册账户的邮箱能够收到一个随机的6位验证码,用户将该验证码提交给注册的服务器。在服务器中进行比对,验证成功则可以注册用户。

# resend进行二次确认

除了上面使用获取邮箱验证码,还可以使用resend服务,给管理员邮箱发送一个验证的链接,链接中包含注册者的注册信息,等待管理员进行确认是否可以注册。这一般可以使用在企业内部管理系统中。

# 首先申请resend账户

申请resend (opens new window)账户,并设置APIkey 进入到API_keys菜单

image.png

设置一个API keys。将key进行保存。

RESEND_API_KEY=re_TyyiSy6F_B8qLDfX27iq6bfDmFsFZ87LP
RESEND_ACCOUNT_EMAIL=申请账号的邮箱@qq.com
1
2

# 安装resend插件

npm install -S resend
1

image.png

const {Resend} = require('resend');

const resend = new Resend(`re_2JWFv1QH_PFKjQmEaxzTGKv7ZyLgpe3rM`);

(async function() {
  const { data, error } = await resend.emails.send({
    from: 'My Test <onboarding@resend.dev>',
    to: '申请账号的邮箱@qq.com',
    subject: 'Hello World',
    html: '<strong>来自xxx@dev.com 用户的申请,请点击确认或者拒绝</strong>'
  });

  if (error) {
    return console.log(error);
  }

  console.log(data);
})();
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

执行node resend.js文件,可以看到邮箱中收到确认链接。

本站部分内容来源网络转载,如有侵权,请联系删除;本站不负任何版权责任!
编辑 (opens new window)
上次更新: 2025/10/22, 08:49:36
node基础入门06
01-nextjs起步-[翻译官网案例]

← node基础入门06 01-nextjs起步-[翻译官网案例]→

最近更新
01
麻将高手快速提升胜率教学
10-22
02
《金刚经》深度解析
10-22
03
鬼谷子识人奇术
10-22
更多文章>
Theme by Vdoing | Copyright © 2018-2025 北鸟南游
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式