最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

node.js模擬實(shí)現(xiàn)自動發(fā)送郵件驗(yàn)證碼

 更新時間:2022年04月26日 14:15:02   作者:「零一」  
這篇文章主要為大家介紹了node.js模擬實(shí)現(xiàn)自動發(fā)送郵件驗(yàn)證碼的實(shí)例過程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

我們在開發(fā)網(wǎng)站時,發(fā)送驗(yàn)證碼的功能是必定會遇到的,但發(fā)送短信驗(yàn)證碼是需要付費(fèi)的,那么郵箱驗(yàn)證碼就是一個白嫖的好辦法,今天就來教大家用node如何自動發(fā)送郵箱驗(yàn)證碼。

接下來跟著我的步驟走,就能輕松完成郵箱的自動發(fā)送

1. QQ郵箱設(shè)置

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

2. 安裝nodemailer

npm i -S nodemailer

3.配置信息

//1. 導(dǎo)入nodemailer
const nodemailer = require('nodemailer')
//2. 創(chuàng)建運(yùn)輸對象
let transporter = nodemailer.createTransport({
    host: 'smtp.qq.com',
    secure: true,
    auth: {
        user: '5641132547@qq.com',//輸入你開啟SMTP服務(wù)的QQ郵箱
        pass: 'oxpbfzjtnurbjhei' //輸入我們剛才獲得的那串字符
    }
})
//3.配置發(fā)送郵件的信息
let mailOptions = {
    from: '5641132547@qq.com', // 發(fā)送者,也就是你的QQ郵箱
    to: '12938203121@qq.com', // 接受者郵箱,可以同時發(fā)送多個,以逗號隔開
    subject: '測試發(fā)送郵件', // 郵件標(biāo)題
    html: `
<p>這是我的測試郵件</p>
<p>哈哈哈,收到請回復(fù)</p>	
    `      //郵件內(nèi)容,以html的形式輸入,在郵件中會自動解析顯示
};
//4.發(fā)送郵件
transporter.sendMail(mailOptions, function(err, data){
	//回調(diào)函數(shù),用于判斷郵件是否發(fā)送成功
	...
})

4.綜合

但我們會發(fā)現(xiàn),通常發(fā)送郵件是作為一個工具,目標(biāo)郵箱,也就是我們要發(fā)送過去的郵箱,通常是會變化的,那我們就需要把代碼封裝一下,接下來放一個完整的代碼。

/*  文件名: 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: '網(wǎng)站賬戶注冊驗(yàn)證碼',
            html: `
            <p>網(wǎng)站賬戶注冊驗(yàn)證碼:</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  */
//導(dǎo)入我們sendEmail.js文件中導(dǎo)出的東西
const sendEmail = require('./sendEmail.js')
//此時sendEmail是一個函數(shù),可傳參數(shù)有 email, code , 執(zhí)行完會返回一個status, 用于判斷是否發(fā)送成功
const result = sendEmail('190380192@qq.com', 568712)
if(result === 0) {
	console.log('郵件發(fā)送失敗')
}
else if(result === 1) {
	console.log('郵件發(fā)送成功')
}

最后我們就會收到這樣一封郵件啦

在這里插入圖片描述

5.講解

對于上一部分對整個代碼的封裝當(dāng)中, 可能大家對 async 和 await 這兩個關(guān)鍵詞有點(diǎn)陌生,這里我就給大家簡單講解一下吧,如果想深入了解的,可以去查閱ES7的資料進(jìn)行了解。

首先, 我們的發(fā)送郵箱是屬于異步操作的。 async 是 用于表示函數(shù)中存在異步操作, 而 await 后面必須給嗯一個Promise , 則在這個函數(shù)內(nèi),必須要等到 await 后面的 Promise 內(nèi)的函數(shù)執(zhí)行完畢以后,才會繼續(xù)往下執(zhí)行。

結(jié)束語

好啦,node.js模擬發(fā)送驗(yàn)證碼的教程就講解到這啦,更多關(guān)于node.js自動發(fā)送郵件驗(yàn)證碼的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

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

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

    如果您是前端開發(fā)人員,您將接觸到一些包管理工具,包管理工具是連續(xù)自動化程序的集合,例如安裝、升級、配置和刪除程序,下面這篇文章主要給大家介紹了關(guān)于前端包管理工具npm、yarn和pnpm的相關(guān)資料,需要的朋友可以參考下
    2022-05-05
  • 淺析node應(yīng)用的timing-attack安全漏洞

    淺析node應(yīng)用的timing-attack安全漏洞

    本篇文章給大家通過原理的原因分析了node應(yīng)用的timing-attack安全漏洞問題,有興趣的朋友閱讀參考下。
    2018-02-02
  • 淺談Node.js爬蟲之網(wǎng)頁請求模塊

    淺談Node.js爬蟲之網(wǎng)頁請求模塊

    本篇文章主要介紹了淺談Node.js爬蟲之網(wǎng)頁請求模塊,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    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模塊用法,總結(jié)分析了Node.js API中console模塊基本函數(shù)、使用方法與操作注意事項(xiàng),需要的朋友可以參考下
    2020-05-05
  • Node.js中Nodemon工具的具體使用

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

    Nodemon是一個Node.js開發(fā)工具,用于自動監(jiān)控文件變化并重啟服務(wù)器,本文就來介紹一下Nodemon工具的具體使用,具有一定的參考價值,感興趣的可以了解一下
    2024-12-12
  • Node.js中的不安全跳轉(zhuǎn)如何防御詳解

    Node.js中的不安全跳轉(zhuǎn)如何防御詳解

    安全是不容忽視的,每個開發(fā)者都知道它非常重要,真正嚴(yán)肅對待它的卻沒有幾人。下面這篇文章主要給大家介紹了關(guān)于Node.js中不安全跳轉(zhuǎn)如何防御的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì)。需要的朋友可以參考下
    2018-10-10
  • node.js中的fs.realpath方法使用說明

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

    這篇文章主要介紹了node.js中的fs.realpath方法使用說明,本文介紹了fs.realpath的方法說明、語法、接收參數(shù)、使用實(shí)例和實(shí)現(xiàn)源碼,需要的朋友可以參考下
    2014-12-12
  • 詳解KOA2如何手寫中間件(裝飾器模式)

    詳解KOA2如何手寫中間件(裝飾器模式)

    這篇文章主要介紹了詳解KOA2如何手寫中間件(裝飾器模式),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-10-10
  • 基于Node.js的http模塊搭建HTTP服務(wù)器

    基于Node.js的http模塊搭建HTTP服務(wù)器

    這篇文章主要為大家介紹了基于Node.js的http模塊來搭建HTTP服務(wù)器的示例過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2022-02-02

最新評論

长阳| 博爱县| 蓬溪县| 通化县| 普兰店市| 石狮市| 昭觉县| 贵定县| 河西区| 遂昌县| 东山县| 和龙市| 呼伦贝尔市| 聊城市| 抚远县| 七台河市| 巨鹿县| 名山县| 沂源县| 盖州市| 两当县| 宁远县| 平度市| 城口县| 青岛市| 宝鸡市| 西和县| 廉江市| 乌鲁木齐县| 灌云县| 崇州市| 岱山县| 温宿县| 广平县| 南靖县| 冷水江市| 天祝| 吉水县| 酒泉市| 湖州市| 简阳市|