微信小程序使用云函数发送邮件
看完本文你將學到:
- 微信小程序云函數的部署與使用
- nodemailer插件的使用
背景故事:
hello,大家好這里是小曹同學。上個星期因為原來開發學校課程表的學長畢業了課程表小程序不能用了。
在受了兩個多星期無數遍打開相冊查看課程表圖標的痛苦之后,決定自己開發了一個小程序。但是由于學校的內網不供外網訪問,無法將后臺爬蟲程序放到服務器來爬取課程,導致我用了比較原始的方法。手動點擊運行程序爬取新注冊同學的課程表(先別罵!小曹只學了三天的python和后端,爬蟲還是小曹的隊友爸爸給作者寫好了開封即用的=-=,至于python調用小程序的云數據庫的問題,后續文章會說到的~敬請期待)。
這就導致了一個問題,如何及時的知道有新同學注冊使用了我的小程序呢?于是我想到了一個比較復古的解決辦法!注冊之后自動給我的郵箱發個郵件。具體效果如下圖。
一、準備一個qq郵箱,并且開通SMTP服務
打開你準備的qq郵箱進入設置找到賬戶,在賬戶信息下找到POP3/SMTP服務獲取授權碼,具體操作看下圖
復制保存好你的授權碼,后面會用到
二、初始化云開發,創建發送郵件的云函數
2.1初始化后在項目目錄中找到project.config.json配置文件配置云函數
三、創建云函數sendEmail
3.1右鍵cloud文件,新建一個云函數
3.2創建完之后右鍵剛剛創建的云函數,選擇在終端里打開,輸入npm install nodemailer下載nodemailer插件
四、編寫發送郵件的代碼
這里貼一下代碼
// 云函數入口文件 const cloud = require('wx-server-sdk')cloud.init() // 引入發送郵件的類庫 const nodeemailer = require('nodemailer') // 創建smtp客戶端配置 const config = {host:'smtp.qq.com', // 網易郵箱smtp.163.comport:465, // 網易的端口25auth:{user:'123@qq.com',// 郵箱賬號pass:'' // 自己的郵箱授權碼} } // 創建smtp客戶端兌現 const transporter = nodeemailer.createTransport(config)// 云函數入口函數 exports.main = async (event, context) => {// 創建一個郵件對象 const email = {// 發件人from: '更新一下課表 <123@qq.com>',// 主題subject:'更新課表',// 收件人to:'12222@qq.com',// 郵件內容text:'你好,麻煩更新一下課表!'};let res = await transporter.sendMail(email)return res }五、上傳云函數并且調用云函數
在使用已經寫好的云函數時,需要先上傳編寫好的云函數,右鍵云函數目錄選擇上傳并部署就行了
調用云函數的方法是wx.cloud.callFunction
wx.cloud.callFunction({name:'sendEmail', // 這里填寫調用的云函數名稱success(res){// 調用成功后的操作wx.hideLoading();wx.showToast({title: '發送成功!',icon:'success'})console.log(res)},fail(res){// 調用失敗后的操作wx.showToast({title: '發送失敗',icon:'error'})console.log(res)}})到這里整個云函數郵件發送的功能就算完成了。
本文參考文章微信小程序發送郵件,小程序云開發使用云函數發送郵件
總結
以上是生活随笔為你收集整理的微信小程序使用云函数发送邮件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CAD 电气版 元件包含中文的描述显示问
- 下一篇: 扫地机器人石头爬坡_3年进化——“石头扫