uni-app 云函数内使用nodemailer库发送邮件总是提示超时

uni-app 云函数内使用nodemailer库发送邮件总是提示超时

操作步骤:

nodemailer 发送邮件

1: 引入nodemailer库
2: 配置
3: 调用库发送邮件

预期结果:

发送成功

实际结果:

云函数运行超时

bug描述:

云函数无法使用node的 nodemailer 库发送邮件,在云函数里总会超时。

6 回复

本地运行云函数需要几秒发送? 用哪家邮箱?

更多关于uni-app 云函数内使用nodemailer库发送邮件总是提示超时的实战教程也可以访问 https://www.itying.com/category-93-b0.html


https://ask.dcloud.net.cn/article/38800
整个论坛,也就我们两个人在讨论nodemailer

我也在用

实话说,好像不行的

回复 1***@163.com: 这个我亲测是可以https://ask.dcloud.net.cn/article/38800

在uni-app云函数中使用nodemailer发送邮件超时,通常有几个关键原因:

  1. 网络环境限制:云函数默认运行在受限的网络环境中,某些SMTP端口可能被禁用。建议使用465(SSL)或587(TLS)端口。

  2. SMTP配置问题

const transporter = nodemailer.createTransport({
  host: 'smtp.xxx.com',
  port: 465, // 或587
  secure: true, // port 465时为true
  auth: {
    user: 'your-email@xxx.com',
    pass: 'your-password' // 建议使用应用专用密码
  }
});
  1. DNS解析问题:云函数环境DNS解析可能受限,建议使用IP地址或配置可靠的DNS。

  2. 超时设置

const transporter = nodemailer.createTransport({
  // ...其他配置
  connectionTimeout: 30000,
  greetingTimeout: 30000,
  socketTimeout: 30000
});
  1. 异步处理:确保正确使用async/await处理异步操作:
exports.main = async (event) => {
  try {
    await transporter.sendMail(mailOptions);
    return { success: true };
  } catch (error) {
    return { error: error.message };
  }
};
回到顶部