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

Nodemailer邮件发送返回200成功但未收到邮件求助

Nodemailer发送成功但收不到邮件的排查与修复

针对你遇到的Nodemailer返回200成功状态、无报错但收不到邮件的问题,结合代码细节,以下是关键排查点和修复方案:

1. 修正Gmail认证配置

代码中auth部分的user和pass为占位符,必须替换为实际有效信息:

  • user填你的Gmail邮箱地址(如darciangn@gmail.com);
  • pass不能用Gmail登录密码,需使用Google应用专用密码(开启2FA后在账号设置中生成),未开2FA可临时启用"不太安全的应用访问"(不推荐长期使用)。

修改后示例:

auth:{
    user:'darciangn@gmail.com',
    pass:'你的应用专用密码',
}

2. 规范from字段格式

当前from仅设置名称Darcia⚜️不符合SMTP协议要求,会被邮件服务器判定为无效发件人,导致邮件被拦截。需补充邮箱地址:

from: `Darcia⚜️ <darciangn@gmail.com>`,

3. 删除错误的name配置

createTransport中的name参数是SMTP服务器的主机标识,不是你的邮箱地址,该错误配置可能导致SMTP握手异常。直接移除name: 'darciangn@gmail.com'这一行。

4. 优化异步发送逻辑

当前回调式的sendMail无法完整捕获异步错误,建议改用Promise风格,确保错误能被正确抛出:

const Email = async (options) => {
    let transporter = nodemailer.createTransport({
        service: "gmail",
        host: "smtp.gmail.com",
        port: 587,
        secure: false,
        auth:{
            user:'darciangn@gmail.com',
            pass:'你的应用专用密码',
        }
    })
     
    try {
        const info = await transporter.sendMail(options);
        console.log("Email sent: " + info.response);
    } catch (err) {
        console.log(err);
        throw err;
    }
};

const EmailSender = async ({firstName, lastName, email, companyName, typeOfDeveloper, recruitmentType}) => {
    const options = {
        // ... 原有配置 ...
        from: `Darcia⚜️ <darciangn@gmail.com>`,
        // ... 原有HTML内容 ...
    };
    await Email(options);
}

5. 额外排查点

  • 检查目标邮箱的垃圾邮件/垃圾箱,邮件大概率被误判为垃圾邮件;
  • 确认Gmail账号未触发发送限制(短时间内发送过多邮件会被临时限制);
  • 换用其他邮箱服务(如Outlook、QQ邮箱)测试,排除Gmail的特定规则限制。

内容的提问来源于stack exchange,提问作者Ahmed Iyanuoluwa

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 15:07:26