引言

先点赞,再看博客,顺手可以点个关注。

微信公众号搜索【Lpyexplore的编程小屋】,关注我,带你在python爬虫的过程中学习前端

我们在开发网站时,发送验证码的功能是必定会遇到的,但发送短信验证码是需要付费的,那么邮箱验证码就是一个白嫖的好办法,今天就来教大家用node如何自动发送邮箱验证码。

正文

接下来跟着我的步骤走,就能轻松完成邮箱的自动发送

1. QQ邮箱设置







2. 安装nodemailer

npm i -S nodemailer

3.配置信息

//1. 导入nodemailer
const nodemailer = require('nodemailer') //2. 创建运输对象
let transporter = nodemailer.createTransport({
host: 'smtp.qq.com',
secure: true,
auth: {
user: '5641132547@qq.com',//输入你开启SMTP服务的QQ邮箱
pass: 'oxpbfzjtnurbjhei' //输入我们刚才获得的那串字符
}
}) //3.配置发送邮件的信息
let mailOptions = {
from: '5641132547@qq.com', // 发送者,也就是你的QQ邮箱
to: '12938203121@qq.com', // 接受者邮箱,可以同时发送多个,以逗号隔开
subject: '测试发送邮件', // 邮件标题
html: `
<p>这是我的测试邮件</p>
<p>哈哈哈,收到请回复</p>
` //邮件内容,以html的形式输入,在邮件中会自动解析显示
}; //4.发送邮件
transporter.sendMail(mailOptions, function(err, data){
//回调函数,用于判断邮件是否发送成功
...
})

4.综合

但我们会发现,通常发送邮件是作为一个工具,目标邮箱,也就是我们要发送过去的邮箱,通常是会变化的,那我们就需要把代码封装一下,接下来放一个完整的代码。

/*  文件名: sendEmail.js    */

const nodemailer = require('nodemailer')

let transporter = nodemailer.createTransport({
host: 'smtp.qq.com',
secure: true,
auth: {
user: '5641132547@qq.com',
pass: 'asdasfsfwqqw'
}
}); module.exports = async function fn(email, code){
let status = null
await new Promise((resolve, reject) => {
transporter.sendMail({
from: '5641132547@qq.com',
to: email,
subject: '网站账户注册验证码',
html: `
<p>网站账户注册验证码:</p>
<span style="font-size: 18px; color: red">` + code + `</span>` }, function (err, info) {
if (err) {
status = 0
reject()
} else {
status = 1
resolve()
}
});
})
return status }
/*  文件名  main.js  */

//导入我们sendEmail.js文件中导出的东西
const sendEmail = require('./sendEmail.js') //此时sendEmail是一个函数,可传参数有 email, code , 执行完会返回一个status, 用于判断是否发送成功
const result = sendEmail('190380192@qq.com', 568712)
if(result === 0) {
console.log('邮件发送失败')
}
else if(result === 1) {
console.log('邮件发送成功')
}

最后我们就会收到这样一封邮件啦

5.讲解

对于上一部分对整个代码的封装当中, 可能大家对 async 和 await 这两个关键词有点陌生,这里我就给大家简单讲解一下吧,如果想深入了解的,可以去查阅ES7的资料进行了解。

首先, 我们的发送邮箱是属于异步操作的。 async 是 用于表示函数中存在异步操作, 而 await 后面必须给嗯一个Promise , 则在这个函数内,必须要等到 await 后面的 Promise 内的函数执行完毕以后,才会继续往下执行。

结束语

好啦,node.js模拟发送验证码的教程就讲解到这啦,希望对大家有所帮助。

node.js 模拟自动发送邮件验证码的更多相关文章

  1. node.js模拟qq漂流瓶

    (文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) node.js模拟简易漂流瓶,页面有扔瓶子和捡瓶子的功能,一个瓶子只能被捡到一次,阅读完就置状态位, ...

  2. Node.js模拟发起http请求从异步转同步的5种方法

    使用Node.js模拟发起http请求很常用的,但是由于Node模块(原生和第三方库)提供里面的方法都是异步,对于很多场景下应用很麻烦,不如同步来的方便.下面总结了几个常见的库API从异步转同步的几种 ...

  3. node.js模拟学校教务处登录

    临近毕业,在做毕设,我的毕设中有一个功能是模拟我学校的教务处登录以获得cookie,本来以为是挺简单的一个功能,但却花了我两天的时间.(我学校教务处用的是湖南强智科技开发的) 在网上搜了大量的模拟登录 ...

  4. Node.js使用Nodemailer发送邮件

    除了Python,在node中收发电子邮件也非常简单,因为强大的社区有各种各样的包可以供我么直接使用.Nodemailer包就可以帮助我们快速实现发送邮件的功能. Nodemailer简介 Nodem ...

  5. 腾讯云短信服务+Node.js给手机发送验证码

    最近公司需要些一个登陆验证和修改密码验证,需要用到验证码,我用Node.js写了一个给手机发验证码的代码,下面实现的功能有:生产验证码,(计时器)验证码失效时间,给手机发送短信. 首先看官方文档,在给 ...

  6. 用Node.js给邮箱发送邮件

    首先我们需要做的是下载发送邮件的包 cnpm install nodemailer --save 然后写发送邮件的代码,代码如下: 实现原理是:用你的邮箱给其他邮箱发送邮件,所以这里需要填写你的邮箱和 ...

  7. js模拟自动点击事件

    1.直接上代码很直观 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  8. 用node.js模拟服务器和客户端

    服务器 代码 var net = require("net") var server = net.createServer(); server.listen(12306," ...

  9. 【VS Code】中node.js代码自动补全的方法

    原文链接: https://blog.csdn.net/qq_39189819/article/details/91347484

随机推荐

  1. 宽度优先搜索--------迷宫的最短路径问题(dfs)

    宽度优先搜索运用了队列(queue)在unility头文件中 源代码 #include<iostream>#include<cstdio>#include<queue&g ...

  2. Redis在Linux下的安装

    一.下载地址 ①redis中文网下载地址:http://www.redis.cn/ ②百度云网盘下载地址:https://pan.baidu.com/s/1UQcF9V3lwA0fxquM_JFMZw ...

  3. Java中包装类Test类测试出错的解决方法(JUnit5)

    import org.junit.jupiter.api.Test; public class TestJunit { public static void main(String[]args) {  ...

  4. 我是如何从零开始自学转行IT并进入世界500强实现薪资翻倍?

    本部分内容对应视频链接. 熟悉我的朋友应该知道,我本科及硕士期间所学的专业都是机械相关,毕业两年之后才从零开始自学转行成为一名程序员.当时我写了一篇文章,介绍我的转行经历,很多小伙伴因为我的这篇文章, ...

  5. 微服务迁移记(五):WEB层搭建(1)

    WEB层是最终表现层,注册至注册中心,引用接口层(不需要引用实现层).公共服务层.用户登录使用SpringSecurity,Session保存在redis中,权限管理没有用SpringSecurity ...

  6. 重置spyder 解决 gbk 编码不能读取问题

    重置spyder 解决 gbk 编码不能读取问题 2020-06-18

  7. map 函数基本写法

    map(需要对对象使用的函数,要操作的对象) 函数可以是自定义的,也可以是内置函数的,或者 lambda 匿名函数 操作的对象多为 可迭代对象可以是函数名的列表集合     2020-05-04

  8. PHP 变量讲解

    PHP 变量 变量是用于存储信息的"容器": 实例 <?php $x=5; $y=6; $z=$x+$y; echo $z; ?> 运行实例 » 与代数类似 x=5y= ...

  9. Python os.statvfs() 方法

    概述 os.statvfs() 方法用于返回包含文件描述符fd的文件的文件系统的信息.高佣联盟 www.cgewang.com 语法 statvfs()方法语法格式如下: os.statvfs([pa ...

  10. PDO::errorInfo

    PDO::errorCode — 返回最后一次操作数据库的错误信息(PHP 5 >= 5.1.0, PECL pdo >= 0.1.0) 说明 语法 public array PDO::e ...