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

Nodemailer v6.9.3无法发送邮件:ECONNREFUSED 127.0.0.1:465错误

问题根源与解决方案

错误原因

你当前代码将SMTP主机设为localhost,但本地并未运行监听465端口的SMTP服务,导致连接被拒绝(ECONNREFUSED)。要通过Gmail发送邮件,必须使用Gmail官方提供的SMTP服务器,而非本地主机。

修正步骤

1. 调整SMTP配置

将createTransport的配置项替换为Gmail的SMTP参数:

const nodeMailer = require('nodemailer')

const html = `
    <h1>Hello World</h1>
    <p>Worked!</p>
`;

async function main() {
    // 修正后的Gmail SMTP配置
    const transporter = nodeMailer.createTransport({
        host: 'smtp.gmail.com', // 替换为Gmail官方SMTP服务器地址
        port: 465,
        secure: true,
        auth: {
            user: 'lohproh38@gmail.com',
            pass: '你的应用专用密码或调整后的账号密码' // 注意此处密码要求
        }
    })
    
    const info = await transporter.sendMail({
        from: 'lohproh38@gmail.com',
        to: 'holaves228@gmail.com',
        subject: 'Testing, testing, 123',
        html: html,
    })

    console.log("Message sent: " + info.messageId)
}

main()
.catch(e => console.log(e))

2. 解决Gmail认证权限问题

Gmail对第三方客户端登录有严格限制,需根据账号状态调整:

  • 若账号开启了两步验证:必须在Google账号设置中创建应用专用密码,用该密码替代代码中的原账号密码。
  • 若未开启两步验证:需在Google账号“安全性”设置中开启“允许不太安全的应用”(不推荐此方式,建议开启两步验证并使用专用密码)。

3. 额外注意事项

  • Gmail有每日发送量限制,测试时避免批量发送大量邮件。
  • 若仍出现认证错误,可检查账号是否触发了Google安全拦截,需在账号安全通知中允许该登录请求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 09:47:17