node.js模拟实现自动发送邮件验证码

 更新时间:2022年04月26日 14:15:02   作者:「零一」  
这篇文章主要为大家介绍了node.js模拟实现自动发送邮件验证码的实例过程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

我们在开发网站时,发送验证码的功能是必定会遇到的,但发送短信验证码是需要付费的,那么邮箱验证码就是一个白嫖的好办法,今天就来教大家用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自动发送邮件验证码的资料请关注脚本之家其它相关文章!

相关文章

  • 一文带你了解前端包管理工具npm、yarn和pnpm

    一文带你了解前端包管理工具npm、yarn和pnpm

    如果您是前端开发人员,您将接触到一些包管理工具,包管理工具是连续自动化程序的集合,例如安装、升级、配置和删除程序,下面这篇文章主要给大家介绍了关于前端包管理工具npm、yarn和pnpm的相关资料,需要的朋友可以参考下
    2022-05-05
  • 浅析node应用的timing-attack安全漏洞

    浅析node应用的timing-attack安全漏洞

    本篇文章给大家通过原理的原因分析了node应用的timing-attack安全漏洞问题,有兴趣的朋友阅读参考下。
    2018-02-02
  • 浅谈Node.js爬虫之网页请求模块

    浅谈Node.js爬虫之网页请求模块

    本篇文章主要介绍了浅谈Node.js爬虫之网页请求模块,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 如何用Node写页面爬虫的工具集

    如何用Node写页面爬虫的工具集

    这篇文章主要介绍了如何用Node写页面爬虫的工具集,主要介绍了三种方法,分别是Puppeteer、cheerio和Auto.js,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • Node.js API详解之 console模块用法详解

    Node.js API详解之 console模块用法详解

    这篇文章主要介绍了Node.js API详解之 console模块用法,总结分析了Node.js API中console模块基本函数、使用方法与操作注意事项,需要的朋友可以参考下
    2020-05-05
  • Node.js中Nodemon工具的具体使用

    Node.js中Nodemon工具的具体使用

    Nodemon是一个Node.js开发工具,用于自动监控文件变化并重启服务器,本文就来介绍一下Nodemon工具的具体使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-12-12
  • Node.js中的不安全跳转如何防御详解

    Node.js中的不安全跳转如何防御详解

    安全是不容忽视的,每个开发者都知道它非常重要,真正严肃对待它的却没有几人。下面这篇文章主要给大家介绍了关于Node.js中不安全跳转如何防御的相关资料,文中通过示例代码介绍的非常详细。需要的朋友可以参考下
    2018-10-10
  • node.js中的fs.realpath方法使用说明

    node.js中的fs.realpath方法使用说明

    这篇文章主要介绍了node.js中的fs.realpath方法使用说明,本文介绍了fs.realpath的方法说明、语法、接收参数、使用实例和实现源码,需要的朋友可以参考下
    2014-12-12
  • 详解KOA2如何手写中间件(装饰器模式)

    详解KOA2如何手写中间件(装饰器模式)

    这篇文章主要介绍了详解KOA2如何手写中间件(装饰器模式),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • 基于Node.js的http模块搭建HTTP服务器

    基于Node.js的http模块搭建HTTP服务器

    这篇文章主要为大家介绍了基于Node.js的http模块来搭建HTTP服务器的示例过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步
    2022-02-02

最新评论