上一節(jié)給大家講了借助小程序云開(kāi)發(fā)的云函數(shù)管理mysql數(shù)據(jù)庫(kù),這一節(jié),就來(lái)給大家講一講使用云開(kāi)發(fā)云函數(shù)實(shí)現(xiàn)郵件發(fā)送的功能。
老規(guī)矩,先看效果圖
通過(guò)上面的日志,可以看出我們是158的郵箱給250的郵箱發(fā)送郵件,下面是成功接收到的郵件。
1,qq郵箱一個(gè)
2,開(kāi)通你的qq郵箱的授權(quán)碼(會(huì)具體講解)
3,注冊(cè)自己的小程序(因?yàn)橹挥凶?cè)的小程序才能使用云開(kāi)發(fā))
4,電腦要安裝node(會(huì)用到npm命令行)
5,跟著老師編寫(xiě)小程序代碼
這個(gè)我不做具體講解了。你進(jìn)入你的qq郵箱以后,
1,點(diǎn)擊設(shè)置,然后點(diǎn)擊賬戶
2,開(kāi)啟POP3/SMTP服務(wù),獲取授權(quán)碼。
具體操作可以看官方文檔,官方文檔有具體的講解,這里我就不多說(shuō)了。
官方文檔:https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28
我們獲取的授權(quán)碼如下圖。這個(gè)授權(quán)碼,我們后面發(fā)送郵件時(shí)會(huì)用到。
代碼很簡(jiǎn)單,就只有一個(gè)頁(yè)面,頁(yè)面上就一個(gè)按鈕,我們點(diǎn)擊這個(gè)按鈕的時(shí)候?qū)崿F(xiàn)郵件的發(fā)送。 三,初始化云開(kāi)發(fā),創(chuàng)建發(fā)送郵件的云函數(shù)。
初始化云開(kāi)發(fā)環(huán)境時(shí),有下面幾點(diǎn)注意事項(xiàng)給大家說(shuō)下。
1,一定要是注冊(cè)的小程序有appid才可以使用云開(kāi)發(fā)
2,一定要在app.js里初始化云開(kāi)發(fā)環(huán)境id
3,在project.config.json里配置云函數(shù)目錄,如下圖箭頭所示
1,右鍵cloud文件,新建云函數(shù)
這個(gè)函數(shù)名你可以隨便起,只要是英文,并且調(diào)用的時(shí)候記得不要寫(xiě)錯(cuò)就行。我這里就用sendEmail
2,創(chuàng)建完以后,右鍵sendEmail選擇在終端里打開(kāi)
這里我們需要用npm安裝一個(gè)依賴(lài)包 nodemailer 使用npm安裝依賴(lài)包需要用到node,至于node的安裝大家自行百度,一大堆的講解文章。
3,在打開(kāi)的命令行窗口里輸入 npm install nodemailer
4,等待 nodemailer類(lèi)庫(kù)的安裝。
5,安裝成功時(shí),您能看到nodemailer的版本號(hào)。
這里一定要注意填寫(xiě)你自己的qq郵箱的授權(quán)碼
代碼里都有注釋?zhuān)苯影汛a給大家貼出來(lái)吧。
const cloud = require('wx-server-sdk') cloud.init() //引入發(fā)送郵件的類(lèi)庫(kù) var nodemailer = require('nodemailer') // 創(chuàng)建一個(gè)SMTP客戶端配置 var config = { host: 'smtp.qq.com', //網(wǎng)易163郵箱 smtp.163.com port: 465, //網(wǎng)易郵箱端口 25 auth: { user: '1587072557@qq.com', //郵箱賬號(hào) pass: '這里要填你自己的授權(quán)碼' //郵箱的授權(quán)碼 } }; // 創(chuàng)建一個(gè)SMTP客戶端對(duì)象 var transporter = nodemailer.createTransport(config); // 云函數(shù)入口函數(shù) exports.main = async(event, context) => { // 創(chuàng)建一個(gè)郵件對(duì)象 var mail = { // 發(fā)件人 from: '來(lái)自小石頭 <1587072557@qq.com>', // 主題 subject: '來(lái)自小石頭的問(wèn)候', // 收件人 to: '2501902696@qq.com', // 郵件內(nèi)容,text或者h(yuǎn)tml格式 text: '你好啊,編程小石頭' //可以是鏈接,也可以是驗(yàn)證碼 }; let res = await transporter.sendMail(mail); return res; }六,上傳云函數(shù)
編寫(xiě)完代碼后,一定要記得上傳云函數(shù)
我們?cè)趇ndex.wxml文件里寫(xiě)一個(gè)按鈕,當(dāng)點(diǎn)擊這個(gè)按鈕時(shí)就發(fā)送郵件。
然后在index.js里調(diào)用我們的sendEmail云函數(shù)。
可以看到我們的控制臺(tái),打印里發(fā)送成功的日志信息
然后到我們的郵箱里,可以看到新收到的郵件。
到這里我們就完整的實(shí)現(xiàn)了微信小程序云開(kāi)發(fā)使用云函數(shù)發(fā)送郵件的功能了。是不是很簡(jiǎn)單呢。
源碼我也已經(jīng)給大家準(zhǔn)備好了。大家先試著自己敲下,看能不能實(shí)現(xiàn),如果實(shí)現(xiàn)不了再來(lái)找我要源碼。
?
本文摘自 :https://blog.51cto.com/u