???? SSI ????????

亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

node.js
???? SSI ????????
首頁(yè) > 網(wǎng)絡(luò)編程 > JavaScript > node.js > node.js自動(dòng)發(fā)送郵件驗(yàn)證碼

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

作者:「零一」

這篇文章主要為大家介紹了node.js模擬實(shí)現(xiàn)自動(dòng)發(fā)送郵件驗(yàn)證碼的實(shí)例過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

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

接下來(lái)跟著我的步驟走,就能輕松完成郵箱的自動(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',//輸入你開(kāi)啟SMTP服務(wù)的QQ郵箱
        pass: 'oxpbfzjtnurbjhei' //輸入我們剛才獲得的那串字符
    }
})
//3.配置發(fā)送郵件的信息
let mailOptions = {
    from: '5641132547@qq.com', // 發(fā)送者,也就是你的QQ郵箱
    to: '12938203121@qq.com', // 接受者郵箱,可以同時(shí)發(fā)送多個(gè),以逗號(hào)隔開(kāi)
    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ā)送過(guò)去的郵箱,通常是會(huì)變化的,那我們就需要把代碼封裝一下,接下來(lái)放一個(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)站賬戶(hù)注冊(cè)驗(yàn)證碼',
            html: `
            <p>網(wǎng)站賬戶(hù)注冊(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é)束語(yǔ)

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

您可能感興趣的文章:
閱讀全文
???? SSI ????????
???? SSI ????????