首页 > 编程语言 >uniCloud云函数结合nodemailer发送邮件的方法

uniCloud云函数结合nodemailer发送邮件的方法

时间:2022-11-04 23:34:07浏览次数:46  
标签:qq return nodemailer 发送 uniCloud event 邮件

使用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 = '[email protected]' //自己的邮箱
          var pass = 'xxxxxx' //qq邮箱的授权码
          var rece = '[email protected]' //对方邮箱
    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
    }  
}

如上代码所示,亲测可用!

 

标签:qq,return,nodemailer,发送,uniCloud,event,邮件
From: https://www.cnblogs.com/bokemoqi/p/16859443.html

相关文章

  • Python-SMTP发送邮件
    之前学习过SMTP(SimpleMailTransferProtocol,知道是简单邮件传输协议,是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。python的smtplib提供了一种很......
  • java 发送邮件
    可能有人会说了,发送邮件多么简单,我单手十分钟就可以写完。大佬避让,我是萌新,所以发送邮件也从最简单的说起。因为本人是在springboot中发送邮件,所以采用spring提供的邮件解决......
  • JENKINS如何为项目配置自动发送邮件
    使用Jenkins发送邮件​一、申请SMTP服务​首先我们申请一个QQ的SMTP服务,这样可以使用QQ邮箱来发送邮件   打开qq邮箱:https://mail.qq.com 登陆之后点击“设置”-......
  • flask中发送邮件
    fromflaskimportFlaskfromflask_mailimportMail,Messagefromflaskimportcurrent_app,render_templateapp=Flask(__name__)app.config['MAIL_SERVER']='smtp......
  • Python发送QQ邮件
    Python发送QQ邮件1、登陆QQ邮箱,获取授权码可以参考官网说明登录QQ邮箱点击设置点击账户、点击开启POP3/SMEP服务点击开启后验证密保,然后根据操作发送短信......
  • Python实现监控网络设备状况并发送邮件
    importparamikoimportdatetimeimporttimefromemail.mime.textimportMIMETextimportsmtplib#定义发送邮箱函数defsend_email(title):title=titles......
  • uniCloud传统方式调用数据库-基本操作
    1.后台云函数todo/index.js'usestrict';//查询所有constqueryAll=(collection,params)=>{ returncollection.get()}//新增constadd=(collection,data)=>......
  • 赏金猎人笔记-电子邮件中所存在的sqli
      前言本篇文章主要测试的是密码忘记功能;过程我第一次嘗試沒有空格的輸入:[email protected]=>valid“a”@.com=>valid然後用空格:[email protected]=>無效“d......
  • Python脚本IMAP登陆邮箱 搜索邮件
    功能:python脚本登陆邮箱查找指定邮件。  代码:#!/usr/bin/envpython#-*-coding:UTF-8-*-##pythontversion:3.8.8#导入模块importimaplib,string......
  • 使用git config --global设置用户名和邮件
    安装好git后,在命令行或终端中使用下面的命令可以设置git自己的名字和电子邮件。这是因为Git是分布式版本控制系统,所以,每个机器都必须自报家门:你的名字和Email地址。gitco......