uniCloud云函数结合nodemailer发送邮件的方法
使用uniCloud云函数结合nodemailer发送邮件的时候,在本地调试可以发送成功,但是当我把云函数上传后,就不能发送到邮件了,但是云函数依旧执行了。开始我以为是node.js版本的原因,但是经过排查,我发现不是版本原因,而是线程原因,于是,我前往社区查看,最终找到了一篇很有用的文章。如下:
网上找的node发邮件,用到最多的是nodemailer,于是利用百度出来的代码,直接运行在uniCloud,本地运行发送成功,但是云端一直报错。 仔细看了报错内容,提到Thread,所以猜测代码里新建了线程去发邮件。 为了找到如何用当前线程发,第一时间想到的是nodemailer的官方文档:https://nodemailer.com/about/ 结合官方文档,写了个可以在uniCloud云端正常发邮件,并且亲测成功的代码:
这里也放上我更改后的代码:
'use strict'; const nodemailer = require('nodemailer') // 记得在当前文件夹执行npm install nodemailer后才能使用 exports.main = async (event, context) => { // let name = event.body var user = '87654321@qq.com' //自己的邮箱 var pass = 'xxxxxx' //qq邮箱的授权码 var rece = '12345678@qq.com' //对方邮箱 let transporter = nodemailer.createTransport({ host: 'smtp.qq.com', secureConnection: true, port: 465, secure: true, auth: { user: user, pass: pass } }) const info = await transporter.sendMail({ from: `发送人<${user}>`, to: `接收人<${rece}>`, subject: '主题', html: '<h1>这是来自云函数的邮件</h1>', // text: '文本' }) if (info.messageId) { // return {code: 0, msg: '发送成功'} return event } else { // return {code: 1, msg: '发送失败', info} return event } }
如上代码所示,亲测可用!
时间仓促,如有错误欢迎指出,欢迎在评论区讨论,如对您有帮助还请点个推荐、关注支持一下
作者:莫颀
出处:https://www.cnblogs.com/bokemoqi/p/16859443.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文链接,否则保留追究法律责任的权利。
若内容有侵犯您权益的地方,请公告栏处联系本人,本人定积极配合处理解决。