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

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

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

引言

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

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

1. QQ郵箱設(shè)置

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

在這里插入圖片描述

2. 安裝nodemailer

npm i -S nodemailer

3.配置信息

//1. 導(dǎo)入nodemailer
const nodemailer = require('nodemailer')
//2. 創(chuàng)建運(yùn)輸對(duì)象
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', // 接受者郵箱,可以同時(shí)發(fā)送多個(gè),以逗號(hào)隔開
    subject: '測(cè)試發(fā)送郵件', // 郵件標(biāo)題
    html: `
<p>這是我的測(cè)試郵件</p>
<p>哈哈哈,收到請(qǐng)回復(fù)</p>	
    `      //郵件內(nèi)容,以html的形式輸入,在郵件中會(huì)自動(dòng)解析顯示
};
//4.發(fā)送郵件
transporter.sendMail(mailOptions, function(err, data){
	//回調(diào)函數(shù),用于判斷郵件是否發(fā)送成功
	...
})

4.綜合

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

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

最后我們就會(huì)收到這樣一封郵件啦

在這里插入圖片描述

5.講解

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

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

結(jié)束語

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

相關(guān)文章

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

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

    如果您是前端開發(fā)人員,您將接觸到一些包管理工具,包管理工具是連續(xù)自動(dòng)化程序的集合,例如安裝、升級(jí)、配置和刪除程序,下面這篇文章主要給大家介紹了關(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)頁請(qǐng)求模塊

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

    本篇文章主要介紹了淺談Node.js爬蟲之網(wǎng)頁請(qǐng)求模塊,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    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是一個(gè)Node.js開發(fā)工具,用于自動(dòng)監(jiān)控文件變化并重啟服務(wù)器,本文就來介紹一下Nodemon工具的具體使用,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-12-12
  • Node.js中的不安全跳轉(zhuǎn)如何防御詳解

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

    安全是不容忽視的,每個(gè)開發(fā)者都知道它非常重要,真正嚴(yán)肅對(duì)待它的卻沒有幾人。下面這篇文章主要給大家介紹了關(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如何手寫中間件(裝飾器模式),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-10-10
  • 基于Node.js的http模塊搭建HTTP服務(wù)器

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

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

最新評(píng)論

民县| 霍州市| 三门县| 巧家县| 崇州市| 鹤峰县| 罗江县| 托里县| 上林县| 措勤县| 色达县| 富顺县| 无棣县| 老河口市| 常德市| 航空| 永平县| 伊宁市| 贺州市| 阳东县| 苏尼特左旗| 介休市| 凉城县| 资中县| 湾仔区| 温宿县| 斗六市| 库伦旗| 蕲春县| 浮梁县| 靖州| 大埔县| 东乌珠穆沁旗| 泾源县| 屏东县| 龙州县| 双峰县| 炎陵县| 民县| 萝北县| 金坛市|