当前位置: 首页 > 后端技术 > Node.js

巧妙利用小程序云开发实现邮件发送功能丨实践

时间:2023-04-03 11:15:31 Node.js

先看效果图:从上面的日志可以看出,我们是从158开头的邮箱向250开头的邮箱发送邮件,而以下是成功收到的邮件。准备工作1.一个qq邮箱2.打开你qq邮箱的授权码(会详细说明)3.注册自己的小程序(因为只有注册的小程序才能使用云开发)4.在电脑上安装node(会用进入npm命令行)5.编写小程序代码1.准备一个QQ邮箱,启动SMTP服务进入qq邮箱后:1.点击设置,然后点击账户2.开启POP3/SMTP服务,获取授权码。具体操作可以看官方文档,官方文档有具体的解释,这里不再赘述。官方文档:https://dwz.cn/SJCibDEi我们得到的授权码如下图。请保存此授权码,我们稍后发送邮件时会用到。2.注册小程序获取appid,创建小程序。小程序的注册和创建这里不再赘述。需要的同学可以参考官方文档:https://dwz.cn/HpcWynVz下图是我们创建的小程序程序。代码很简单,只有一页,页面上只有一个按钮。当我们单击此按钮时,将发送电子邮件。3.初始化云开发,创建发送邮件的云功能。云开发的初始化这里就不详细说明了。有兴趣或者不会的同学可以到教学视频中腾讯云开发的菜单公众号【技术交流-视频】教程】。初始化云开发环境时,需要注意以下几点:1、注册的小程序必须有appid,才能使用云开发。2、必须在app.js中初始化云开发环境id3,并在project.config.json中配置云函数目录,如下图箭头所示4、创建云函数sendEmail1,右键云文件,新建一个云函数:这个函数的名字随意,只要是英文即可,调用时切记不要出错。我在这里使用sendEmail。2、创建完成后,右键sendEmail,选择在终端打开:这里我们需要使用npm安装一个依赖包nodemailer来安装依赖包。需要节点。至于node的安装,大家可以自行百度,里面有很多讲解的文章。3、在打开的命令行窗口中输入npminstallnodemailer:4、等待nodemailer类库的安装5、安装成功后可以看到nodemailer的版本号5、编写发送邮件的核心代码。一定要填写你自己的qq邮箱的授权码:代码里面有注释,大家可以直接把代码贴出来。constcloud=require('wx-server-sdk')cloud.init()//引入发送邮件的类库varnodemailer=require('nodemailer')//创建SMTP客户端配置varconfig={host:'smtp.qq.com',//网易163邮箱smtp.163.comport:465,//网易邮箱25端口auth:{user:'1587072557@qq.com',//邮箱账号pass:'这里填写Yourownauthorizationcode'//邮箱的授权码}};//创建SMTP客户端对象vartransporter=nodemailer.createTransport(config);//云函数入口函数exports.main=async(event,context)=>{//创建邮件对象varmail={//Senderfrom:'FromLittleStone<1587072557@qq.com>',//Subjectsubject:'GreetingsfromLittleStone',//Recipientto:'2501902696@qq.com',//邮件内容,文本或html格式text:'Hi,programmingrock'//可以是链接也可以是验证码};letres=awaittransporter.sendMail(mail);returnres;}六、上传云函数写完代码,一定要记得上传云函数。7、调用云函数发送邮件我们在index.wxml文件中写一个按钮,当点击该按钮时,就会发送邮件。然后在index.js中调用我们的sendEmail云函数。8、点击发送邮件,查看效果,可以看到我们的控制台,打印发送成功的日志信息:然后进入我们的邮箱,可以看到新收到的邮件。至此,我们就完全实现了微信小程序云开发使用云函数发送邮件的功能。是不是很简单?源码地址:https://github.com/TencentCloudBase/Good-practice-tutorial-recommended如果你有使用云开发CloudBase的技术故事/技术实践经验分享给大家,欢迎留言联系我们~比心!