上一節給大家講了藉助小程序雲開發的雲函數管理mysql數據庫,這一節,就來給大家講一講使用雲開發雲函數實現郵件發送的功能。
老規矩,先看效果圖
通過上面的日誌,可以看出我們是158的郵箱給250的郵箱發送郵件,下面是成功接收到的郵件。
準備工作
1,qq郵箱一個
2,開通你的qq郵箱的授權碼(會具體講解)
3,註冊自己的小程序(因爲只有註冊的小程序才能使用雲開發)
4,電腦要安裝node(會用到npm命令行)
5,跟着老師編寫小程序代碼
一,準備一個qq郵箱,並啓動SMTP服務
這個我不做具體講解了。你進入你的qq郵箱以後,
1,點擊設置,然後點擊賬戶
2,開啓POP3/SMTP服務,獲取授權碼。
具體操作可以看官方文檔,官方文檔有具體的講解,這裏我就不多說了。
官方文檔:https://service.mail.qq.com/cgi-bin/help?subtype=1&&no=1001256&&id=28
我們獲取的授權碼如下圖。這個授權碼,我們後面發送郵件時會用到。
二,註冊小程序獲取appid,創建一個小程序。
關於小程序的註冊,和創建小程序我就不在做具體講解,感興趣的同學或者還不會的同學可以翻看我前面的文章學習,也可以看我的零基礎入門小程序的視頻:https://edu.csdn.net/course/detail/9531
下圖是我們創建好的小程序。
代碼很簡單,就只有一個頁面,頁面上就一個按鈕,我們點擊這個按鈕的時候實現郵件的發送。
三,初始化雲開發,創建發送郵件的雲函數。
關於雲開發初始化我這裏也不在做具體講解了,感興趣或者不會的同學,可以去看我錄製的雲開發入門視頻:https://edu.csdn.net/course/detail/9604
初始化雲開發環境時,有下面幾點注意事項給大家說下。
1,一定要是註冊的小程序有appid纔可以使用雲開發
2,一定要在app.js裏初始化雲開發環境id
3,在project.config.json裏配置雲函數目錄,如下圖箭頭所示
四,創建雲函數 sendEmail
1,右鍵cloud文件,新建雲函數
這個函數名你可以隨便起,只要是英文,並且調用的時候記得不要寫錯就行。我這裏就用sendEmail
2,創建完以後,右鍵sendEmail選擇在終端裏打開
這裏我們需要用npm安裝一個依賴包 nodemailer 使用npm安裝依賴包需要用到node,至於node的安裝大家自行百度,一大堆的講解文章。
3,在打開的命令行窗口裏輸入 npm install nodemailer
4,等待 nodemailer類庫的安裝。
5,安裝成功時,您能看到nodemailer的版本號。
五,編寫發送郵件的核心代碼。
這裏一定要注意填寫你自己的qq郵箱的授權碼
代碼裏都有註釋,直接把代碼給大家貼出來吧。
const cloud = require('wx-server-sdk')
cloud.init()
//引入發送郵件的類庫
var nodemailer = require('nodemailer')
// 創建一個SMTP客戶端配置
var config = {
host: 'smtp.qq.com', //網易163郵箱 smtp.163.com
port: 465, //網易郵箱端口 25
auth: {
user: '[email protected]', //郵箱賬號
pass: '這裏要填你自己的授權碼' //郵箱的授權碼
}
};
// 創建一個SMTP客戶端對象
var transporter = nodemailer.createTransport(config);
// 雲函數入口函數
exports.main = async(event, context) => {
// 創建一個郵件對象
var mail = {
// 發件人
from: '來自小石頭 <[email protected]>',
// 主題
subject: '來自小石頭的問候',
// 收件人
to: '[email protected]',
// 郵件內容,text或者html格式
text: '你好啊,編程小石頭' //可以是鏈接,也可以是驗證碼
};
let res = await transporter.sendMail(mail);
return res;
}
六,上傳雲函數
編寫完代碼後,一定要記得上傳雲函數
七,調用雲函數發送郵件
我們在index.wxml文件裏寫一個按鈕,當點擊這個按鈕時就發送郵件。
然後在index.js裏調用我們的sendEmail雲函數。
八,點擊發送郵件,查看效果。
可以看到我們的控制檯,打印裏發送成功的日誌信息
然後到我們的郵箱裏,可以看到新收到的郵件。
到這裏我們就完整的實現了微信小程序雲開發使用雲函數發送郵件的功能了。是不是很簡單呢。
源碼我也已經給大家準備好了。大家先試着自己敲下,看能不能實現,如果實現不了再來找我要源碼。
有任何關於小程序相關的問題,也可以加我微信 2501902696(備註小程序)