You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Nodemailer配置Zoho Mail发送邮件失败,求解决方法

修复Zoho Mail + Nodemailer发送失败的问题

以下是针对性的修复步骤,按优先级排查:

1. 修正代码中的基础错误

  • 替换to字段为有效邮箱:你代码里的to: 'userName'是占位符,必须改成实际收件人的邮箱地址,比如to: 'user@example.com'。
  • 补充完整html内容:html: // mail body仅为注释,需要填入有效的HTML字符串,示例:
    html: '<h1>感谢联系我们</h1><p>这是自动回复的邮件内容</p>'
    

2. 检查Zoho Mail的SMTP权限设置

  • 确认Zoho后台已开启SMTP服务:登录Zoho Mail控制台,进入「设置」→「邮件账户」→「POP/IMAP/SMTP」,确保SMTP服务处于启用状态。
  • 使用应用专用密码:如果你的Zoho账户开启了两步验证,不能直接用登录密码,需生成应用专用密码。路径:Zoho账户设置→「安全」→「应用专用密码」,创建一个专属密码替换代码中的pass字段。

3. 完善错误排查逻辑

当前错误处理仅返回通用提示,无法定位具体问题,修改catch块打印详细错误:

catch (err) {
    console.error('邮件发送错误详情:', err); // 输出到控制台查看具体问题
    res.status(400).json({ message: `发送失败: ${err.message}` });
}

通过控制台的错误信息(如认证失败、端口不匹配、邮箱地址无效等),可以精准定位问题根源。

4. 开启调试模式查看SMTP交互细节

在Transporter配置中添加debug: true,开启SMTP调试日志,查看连接、认证、发送的全过程:

let transporter = nodemailer.createTransport({
    host: 'smtp.zoho.com',
    port: 465,
    secure: true,
    debug: true, // 启用调试模式
    auth: {
        user: "contact@company.com",
        pass: "你的应用专用密码"
    }
});

5. 验证发件人邮箱合法性

确保from字段中的contact@company.com是你Zoho账户下已验证的邮箱地址,不能使用未在Zoho绑定的邮箱作为发件人。

内容的提问来源于stack exchange,提问作者Ankit Kumar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 06:35:17