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

使用NodeJS Nodemailer通过Mailtrap发送邮件失败求助

解决Nodemailer + Mailtrap Live SMTP邮件发送失败问题

以下是逐步排查和修复的建议:

1. 先获取具体错误信息

你的代码目前仅返回"error"但未输出错误细节,这是定位问题的核心。修改错误处理逻辑,打印完整错误内容:

transporter.sendMail(mailOptions, (error, info) => {
    if (error) {
        console.error('邮件发送错误详情:', error); // 打印完整错误到控制台
        res.send('error');
    } else {
        console.log('邮件发送成功响应:', info.response);
        res.send('success');
    }
})

运行后查看控制台输出,比如认证失败、发件地址未验证、端口连接失败等信息,能直接指向问题根源。

2. 修正SMTP配置细节

  • 端口类型错误:你将port设为字符串'587',Nodemailer要求该参数为数字类型,改为:
    port: 587,
    
  • 认证信息验证:确认Mailtrap Live SMTP的user和pass是否准确。Mailtrap的Live SMTP服务用户名通常不是固定的api,需登录Mailtrap后台查看专属SMTP凭证,同时确保密码完整输入(你的代码中密码有星号遮挡,需确认未遗漏字符)。
  • 发件地址限制:Mailtrap Live SMTP要求发件人地址(from)必须是你在后台验证过的域名或邮箱,不能直接使用用户提交的req.body.email(会被视为伪造发件人)。修改方式:
    const mailOptions = {
        from: '你的验证邮箱 <your-verified-email@yourdomain.com>', // 替换为Mailtrap验证过的地址
        replyTo: req.body.email, // 可选:设置回复地址为用户邮箱,方便后续回复
        to: 'query.anwargroup@gmail.com', 
        subject: `Message from ${req.body.email}: ${req.body.subject}`, // 修正拼写错误:Mssage→Message
        text: req.body.message
    }
    

3. 排查网络与连接问题

  • 测试本地是否能连通Mailtrap服务器:在终端执行telnet live.smtp.mailtrap.io 587或nc -zv live.smtp.mailtrap.io 587,如果无法连通,说明本地防火墙或网络环境阻止了587端口的出站连接,需调整网络设置。
  • TLS配置:你的secure: false和requireTLS: true配置符合587端口的要求(587端口使用STARTTLS升级加密),无需修改;若遇到证书验证错误,可临时添加tls: { rejectUnauthorized: false }(仅测试用,生产环境不建议):
    const transporter = nodemailer.createTransport({
        host: 'live.smtp.mailtrap.io',
        port: 587,
        secure: false,
        requireTLS: true,
        tls: {
            rejectUnauthorized: false // 仅临时测试使用
        },
        auth: {                  
            user: '你的正确用户名',
            pass: '你的正确密码'
        }
    })
    

4. 检查Mailtrap服务状态

确认Mailtrap Live SMTP服务已启用,且未超出账户发件额度(免费账户有发件数量限制)。登录Mailtrap后台查看服务状态和发送记录,是否存在被拦截的请求。

内容的提问来源于stack exchange,提问作者Md. Salahuddin Ahamed

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 00:45:12