热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

node使用Nodemailer发送邮件,可用于登录注册的验证码哟

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 确实很实用,可以解决个人的开源项目登录注册,或者其他校验操作的验证码校验。本文章属于原创,需要转载请留言哦,如果你觉得这篇文章还阔以的话,请给个小赞赞,你的赞就是我发表文章的动力!




推荐阅读
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 本文详细介绍了如何使用MySQL来显示SQL语句的执行时间,并通过MySQL Query Profiler获取CPU和内存使用量以及系统锁和表锁的时间。同时介绍了效能分析的三种方法:瓶颈分析、工作负载分析和基于比率的分析。 ... [详细]
  • Ihavethefollowingonhtml我在html上有以下内容<html><head><scriptsrc..3003_Tes ... [详细]
  • 本文介绍了绕过WAF的XSS检测机制的方法,包括确定payload结构、测试和混淆。同时提出了一种构建XSS payload的方法,该payload与安全机制使用的正则表达式不匹配。通过清理用户输入、转义输出、使用文档对象模型(DOM)接收器和源、实施适当的跨域资源共享(CORS)策略和其他安全策略,可以有效阻止XSS漏洞。但是,WAF或自定义过滤器仍然被广泛使用来增加安全性。本文的方法可以绕过这种安全机制,构建与正则表达式不匹配的XSS payload。 ... [详细]
  • NotSupportedException无法将类型“System.DateTime”强制转换为类型“System.Object”
    本文介绍了在使用LINQ to Entities时出现的NotSupportedException异常,该异常是由于无法将类型“System.DateTime”强制转换为类型“System.Object”所导致的。同时还介绍了相关的错误信息和解决方法。 ... [详细]
  • Spring框架《一》简介
    Spring框架《一》1.Spring概述1.1简介1.2Spring模板二、IOC容器和Bean1.IOC和DI简介2.三种通过类型获取bean3.给bean的属性赋值3.1依赖 ... [详细]
  • python oj刷题网站_中小学计算机竞赛去哪里刷题?橙旭园OJ系统上线啦!
    原标题:中小学计算机竞赛去哪里刷题?橙旭园OJ系统上线啦!相信许多人在学习完编程之后都会茫然,感觉自己无所不能࿰ ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文讨论了在Spring 3.1中,数据源未能自动连接到@Configuration类的错误原因,并提供了解决方法。作者发现了错误的原因,并在代码中手动定义了PersistenceAnnotationBeanPostProcessor。作者删除了该定义后,问题得到解决。此外,作者还指出了默认的PersistenceAnnotationBeanPostProcessor的注册方式,并提供了自定义该bean定义的方法。 ... [详细]
  • Python正则表达式学习记录及常用方法
    本文记录了学习Python正则表达式的过程,介绍了re模块的常用方法re.search,并解释了rawstring的作用。正则表达式是一种方便检查字符串匹配模式的工具,通过本文的学习可以掌握Python中使用正则表达式的基本方法。 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • 微软评估和规划(MAP)的工具包介绍及应用实验手册
    本文介绍了微软评估和规划(MAP)的工具包,该工具包是一个无代理工具,旨在简化和精简通过网络范围内的自动发现和评估IT基础设施在多个方案规划进程。工具包支持库存和使用用于SQL Server和Windows Server迁移评估,以及评估服务器的信息最广泛使用微软的技术。此外,工具包还提供了服务器虚拟化方案,以帮助识别未被充分利用的资源和硬件需要成功巩固服务器使用微软的Hyper - V技术规格。 ... [详细]
  • 本文详细介绍了在Linux虚拟化部署中进行VLAN配置的方法。首先要确认Linux系统内核是否已经支持VLAN功能,然后配置物理网卡、子网卡和虚拟VLAN网卡的关系。接着介绍了在Linux配置VLAN Trunk的步骤,包括将物理网卡添加到VLAN、检查添加的VLAN虚拟网卡信息以及重启网络服务等。最后,通过验证连通性来确认配置是否成功。 ... [详细]
  • Iwanttointegratesort,order,maxandoffsetinafindAllquery.Thefollowingworksfine:我想在fin ... [详细]
  • const限定符全解一、const修饰普通变量  intconsta500;  constinta600;  上述两种情况相同,都是声明一个const型的变量,它们 ... [详细]
author-avatar
CCTV知府影
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有