合规国际互联网加速 OSASE为企业客户提供高速稳定SD-WAN国际加速解决方案。 广告
# 云开发之发送qq邮箱 * [ ] 准备一个QQ邮箱,并启动SMTP服务 进入qq邮箱以后: 1、**点击设置,然后点击账户** ![](https://img.kancloud.cn/8c/08/8c087567d74ac64b615edc2ca3ed7f8a_1222x476.png) 2、**开启POP3/SMTP服务,获取授权码** ![](https://img.kancloud.cn/80/ea/80ea186e345cff1f9e3ebaf3cfbdc8b4_1240x874.png) 我们获取的授权码如下图。请保存好这个授权码,我们后面发送邮件时会用到。 ![](https://img.kancloud.cn/94/53/945351b5afa5f3cf3e85fe83c4c71a99_1002x634.png) * [ ] 注册小程序获取appid,创建一个小程序 关于小程序的注册和创建就不在此赘述,有需要的同学可以参照官方文档: [https://dwz.cn/HpcWynVz](https://dwz.cn/HpcWynVz) 下图是我们创建好的小程序。 ![](https://img.kancloud.cn/58/1e/581ece470386493560721256801af170_1240x691.png) 代码很简单,就只有一个页面,页面上就一个按钮,我们点击这个按钮的时候实现邮件的发送。 * [ ] 初始化云开发,创建发送邮件的云函数 >初始化云开发环境时,需要注意以下几点: 1、一定要是注册的小程序有appid才可以使用云开发 2、一定要在app.js里初始化云开发环境id 3、在project.config.json里配置云函数目录,如下图箭头所示 关于这个不多赘述可以去看我的其他文章: [https://www.kancloud.cn/ltaa123/question/1317877](https://www.kancloud.cn/ltaa123/question/1317877) * [ ] 创建云函数 sendEmail 1、右键cloud文件,新建云函数: ![](https://img.kancloud.cn/83/07/8307d8c47e8ac5fa042155383daf1800_616x384.png) 这个函数名你可以随便起,只要是英文,并且调用的时候记得不要写错就行。我这里就用sendEmail。 2、创建完以后,右键sendEmail选择在终端里打开: ![](https://img.kancloud.cn/cd/a4/cda45a136999705b573e4ef8b3d68add_854x908.png) 这里我们需要用npm安装一个依赖包 nodemailer 使用npm安装依赖包需要用到node,至于node的安装大家自行百度,一大堆的讲解文章。 3、在打开的命令行窗口里输入 npm install nodemailer: ![](https://img.kancloud.cn/d6/7e/d67e0ebd14a21f5313281d16916354ee_1038x414.png) 4、等待 nodemailer类库的安装 ![](https://img.kancloud.cn/5f/93/5f93ede406b4a173283607e56ecdb67e_908x194.png) 5、安装成功时,您能看到nodemailer的版本号 ![](https://img.kancloud.cn/f8/df/f8df24b149e90a4b9a60083958a87bd1_858x370.png) * [ ] 编写发送邮件的核心代码 >这里一定要注意填写你自己的qq邮箱的授权码: ![](https://img.kancloud.cn/19/45/19452a367d509dc2f91b8d116f003ea1_1240x918.png) 代码里都有注释,直接把代码给大家贴出来。 ```javascript 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: '1587072557@qq.com', //邮箱账号 pass: '这里要填你自己的授权码' //邮箱的授权码 } }; // 创建一个SMTP客户端对象 var transporter = nodemailer.createTransport(config); // 云函数入口函数 exports.main = async(event, context) => { // 创建一个邮件对象 var mail = { // 发件人 from: '来自小石头 ', // 主题 subject: '来自小石头的问候', // 收件人 to: '2501902696@qq.com', // 邮件内容, text或者html格式 text: '你好啊,编程小石头' //可以是链接,也可以是验证码 }; let res = await transporter.sendMail(mail); return res; } ``` * [ ] 上传云函数 编写完代码后,一定要记得上传云函数。 ![](https://img.kancloud.cn/53/01/530123a26085f31970ee8b3564da4762_1092x730.png) * [ ] 调用云函数发送邮件 我们在index.wxml文件里写一个按钮,当点击这个按钮时就发送邮件。 ![](https://img.kancloud.cn/d9/fc/d9fca9660c9f44837472c389d01d7061_1240x597.png) 然后在index.js里调用我们的sendEmail云函数。 ![](https://img.kancloud.cn/a0/61/a061818c314a9d6d95fa8e4d889df051_1214x686.png) * [ ] 点击发送邮件,查看效果 可以看到我们的控制台,打印里发送成功的日志信息: ![](https://img.kancloud.cn/b2/0e/b20ead475dc712c3da00015a093f8d88_1240x944.png) 然后到我们的邮箱里,可以看到新收到的邮件。 ![](https://img.kancloud.cn/ae/5a/ae5ae3fbcf97001106a0cf18fdde1373_1240x425.png) 到这里我们就完整的实现了微信小程序云开发使用云函数发送邮件的功能了。