當(dāng)前位置:首頁(yè) > IT技術(shù) > 微信平臺(tái) > 正文

小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件
2021-08-08 14:02:51

上一節(jié)給大家講了借助小程序云開發(fā)的云函數(shù)管理mysql數(shù)據(jù)庫(kù),這一節(jié),就來(lái)給大家講一講使用云開發(fā)云函數(shù)實(shí)現(xiàn)郵件發(fā)送的功能。

老規(guī)矩,先看效果圖
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序發(fā)郵件
通過上面的日志,可以看出我們是158的郵箱給250的郵箱發(fā)送郵件,下面是成功接收到的郵件。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_云函數(shù)_02

準(zhǔn)備工作

1,qq郵箱一個(gè)
2,開通你的qq郵箱的授權(quán)碼(會(huì)具體講解)
3,注冊(cè)自己的小程序(因?yàn)橹挥凶?cè)的小程序才能使用云開發(fā))
4,電腦要安裝node(會(huì)用到npm命令行)
5,跟著老師編寫小程序代碼

一,準(zhǔn)備一個(gè)qq郵箱,并啟動(dòng)SMTP服務(wù)

這個(gè)我不做具體講解了。你進(jìn)入你的qq郵箱以后,

1,點(diǎn)擊設(shè)置,然后點(diǎn)擊賬戶

小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序發(fā)郵件_03

2,開啟POP3/SMTP服務(wù),獲取授權(quán)碼。

小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_微信發(fā)郵件_04
具體操作可以看官方文檔,官方文檔有具體的講解,這里我就不多說了。
官方文檔:https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28
我們獲取的授權(quán)碼如下圖。這個(gè)授權(quán)碼,我們后面發(fā)送郵件時(shí)會(huì)用到。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序發(fā)郵件_05

二,注冊(cè)小程序獲取appid,創(chuàng)建一個(gè)小程序。 下圖是我們創(chuàng)建好的小程序。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序云開發(fā)_06
代碼很簡(jiǎn)單,就只有一個(gè)頁(yè)面,頁(yè)面上就一個(gè)按鈕,我們點(diǎn)擊這個(gè)按鈕的時(shí)候?qū)崿F(xiàn)郵件的發(fā)送。 三,初始化云開發(fā),創(chuàng)建發(fā)送郵件的云函數(shù)。

初始化云開發(fā)環(huán)境時(shí),有下面幾點(diǎn)注意事項(xiàng)給大家說下。

1,一定要是注冊(cè)的小程序有appid才可以使用云開發(fā)
2,一定要在app.js里初始化云開發(fā)環(huán)境id
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_微信發(fā)郵件_07

3,在project.config.json里配置云函數(shù)目錄,如下圖箭頭所示
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序郵件_08

四,創(chuàng)建云函數(shù) sendEmail

1,右鍵cloud文件,新建云函數(shù)
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序發(fā)郵件_09

這個(gè)函數(shù)名你可以隨便起,只要是英文,并且調(diào)用的時(shí)候記得不要寫錯(cuò)就行。我這里就用sendEmail
2,創(chuàng)建完以后,右鍵sendEmail選擇在終端里打開
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_微信發(fā)郵件_10
這里我們需要用npm安裝一個(gè)依賴包 nodemailer 使用npm安裝依賴包需要用到node,至于node的安裝大家自行百度,一大堆的講解文章。
3,在打開的命令行窗口里輸入 npm install nodemailer
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序郵件_11
4,等待 nodemailer類庫(kù)的安裝。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序云開發(fā)_12
5,安裝成功時(shí),您能看到nodemailer的版本號(hào)。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序發(fā)郵件_13

五,編寫發(fā)送郵件的核心代碼。

這里一定要注意填寫你自己的qq郵箱的授權(quán)碼
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_云函數(shù)_14
代碼里都有注釋,直接把代碼給大家貼出來(lái)吧。

const cloud = require('wx-server-sdk')
cloud.init()
//引入發(fā)送郵件的類庫(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)自小石頭的問候',
    // 收件人
    to: '2501902696@qq.com',
    // 郵件內(nèi)容,text或者h(yuǎn)tml格式
    text: '你好啊,編程小石頭' //可以是鏈接,也可以是驗(yàn)證碼
  };

  let res = await transporter.sendMail(mail);
  return res;
}
六,上傳云函數(shù)

編寫完代碼后,一定要記得上傳云函數(shù)
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_微信發(fā)郵件_15

七,調(diào)用云函數(shù)發(fā)送郵件

我們?cè)趇ndex.wxml文件里寫一個(gè)按鈕,當(dāng)點(diǎn)擊這個(gè)按鈕時(shí)就發(fā)送郵件。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_微信發(fā)郵件_16
然后在index.js里調(diào)用我們的sendEmail云函數(shù)。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_微信發(fā)郵件_17

八,點(diǎn)擊發(fā)送郵件,查看效果。

可以看到我們的控制臺(tái),打印里發(fā)送成功的日志信息
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_云函數(shù)_18
然后到我們的郵箱里,可以看到新收到的郵件。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_小程序云開發(fā)_19

到這里我們就完整的實(shí)現(xiàn)了微信小程序云開發(fā)使用云函數(shù)發(fā)送郵件的功能了。是不是很簡(jiǎn)單呢。

源碼我也已經(jīng)給大家準(zhǔn)備好了。大家先試著自己敲下,看能不能實(shí)現(xiàn),如果實(shí)現(xiàn)不了再來(lái)找我要源碼。

?

本文摘自 :https://blog.51cto.com/u

開通會(huì)員,享受整站包年服務(wù)立即開通 >