當前位置:首頁 > IT技術 > 微信平臺 > 正文

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

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

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

準備工作

1,qq郵箱一個
2,開通你的qq郵箱的授權碼(會具體講解)
3,注冊自己的小程序(因為只有注冊的小程序才能使用云開發(fā))
4,電腦要安裝node(會用到npm命令行)
5,跟著老師編寫小程序代碼

一,準備一個qq郵箱,并啟動SMTP服務

這個我不做具體講解了。你進入你的qq郵箱以后,

1,點擊設置,然后點擊賬戶

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

2,開啟POP3/SMTP服務,獲取授權碼。

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

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

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

1,一定要是注冊的小程序有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

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

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

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

const cloud = require('wx-server-sdk')
cloud.init()
//引入發(fā)送郵件的類庫
var nodemailer = require('nodemailer')
// 創(chuàng)建一個SMTP客戶端配置
var config = {
  host: 'smtp.qq.com', //網(wǎng)易163郵箱 smtp.163.com
  port: 465, //網(wǎng)易郵箱端口 25
  auth: {
    user: '1587072557@qq.com', //郵箱賬號
    pass: '這里要填你自己的授權碼' //郵箱的授權碼
  }
};
// 創(chuàng)建一個SMTP客戶端對象
var transporter = nodemailer.createTransport(config);
// 云函數(shù)入口函數(shù)
exports.main = async(event, context) => {
  // 創(chuàng)建一個郵件對象
  var mail = {
    // 發(fā)件人
    from: '來自小石頭 <1587072557@qq.com>',
    // 主題
    subject: '來自小石頭的問候',
    // 收件人
    to: '2501902696@qq.com',
    // 郵件內(nèi)容,text或者html格式
    text: '你好啊,編程小石頭' //可以是鏈接,也可以是驗證碼
  };

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

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

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

我們在index.wxml文件里寫一個按鈕,當點擊這個按鈕時就發(fā)送郵件。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_微信發(fā)郵件_16
然后在index.js里調用我們的sendEmail云函數(shù)。
小程序發(fā)送郵件,小程序云開發(fā)使用云函數(shù)發(fā)送郵件_微信發(fā)郵件_17

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

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

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

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

?

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

開通會員,享受整站包年服務立即開通 >