【问题标题】:connect ECONNREFUSED 127.0.0.1:587 (nodemailer + mailtrap)连接 ECONNREFUSED 127.0.0.1:587 (nodemailer + mailtrap)
【发布时间】:2021-02-22 12:42:32
【问题描述】:

我一直在尝试获得nodemailer的基本组合,使用mailtrap.io帐户工作,并删除。

这是我的 app.js:

const nodemailer = require('nodemailer');

let transport = nodemailer.createTransport({
    host: "smtp.mailtrap.io",
    port: 2525,
    // secure: true,
    auth: {
        user: "myusername",
        pass: "mypassword"
    },
    debug: true,
    logger: true
});

let scrapeEmailMessage = {
    //from: 'myemail@gmail.com',
    to: 'myemail@gmail.com',
    subject: 'Hello World',
    text: 'hello world'
};

let mailTransporter = nodemailer.createTransport(transport);

mailTransporter.sendMail(scrapeEmailMessage, function(err, data) {
    if(err) {
        console.log(err);
    } else {
        console.log('Email sent successfully');
    }
});

这是我得到的错误输出:

[2020-11-10 14:32:20] DEBUG Creating transport: nodemailer (6.4.15; +https://nodemailer.com/; SMTP/6.4.15[client:6.4.15])
[2020-11-10 14:32:20] DEBUG Creating transport: nodemailer (6.4.15; +https://nodemailer.com/; SMTP/6.4.15[client:6.4.15])
[2020-11-10 14:32:20] DEBUG Sending mail using SMTP/6.4.15[client:6.4.15]
[2020-11-10 14:32:20] DEBUG [YlvPyvxQxE] Resolved localhost as 127.0.0.1 [cache miss]
[2020-11-10 14:32:22] ERROR [YlvPyvxQxE] connect ECONNREFUSED 127.0.0.1:587
[2020-11-10 14:32:22] DEBUG [YlvPyvxQxE] Closing connection to the server using "destroy"
[2020-11-10 14:32:22] ERROR Send Error: connect ECONNREFUSED 127.0.0.1:587
Error: connect ECONNREFUSED 127.0.0.1:587
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1129:14) {
  errno: 'ECONNREFUSED',
  code: 'ESOCKET',
  syscall: 'connect',
  address: '127.0.0.1',
  port: 587,
  command: 'CONN'
}

我尝试了很多方法来修复它,并不断收到同样的错误消息:

  • 打开 Gmail 中的“不太安全的应用程序”选项,并使用上述代码尝试连接到 smtp.gmail.com。
  • 在上面的代码中手动编辑端口号。
  • 在上面的代码中打开和关闭安全模式。
  • 在端口 587、465 以及其他几个端口上添加 Windows Defender 防火墙例外只是为了看看它们是否能正常工作。
  • 完全禁用 Windows Defender 防火墙。
  • 在我家庭网络上的其他计算机上运行代码。
  • 检查“netstat -an”以查看是否列出了端口 587 或 465。他们不是,但这个端口是一直打开还是只在需要时打开?会不会是这个问题?

有人对这里可能发生的事情有任何想法吗?我只是一个普通人,使用他的家庭互联网连接编写一个小程序,每天向自己发送一次电子邮件警报。我的 ISP 可能会阻止这个吗?

编辑-添加一些我尝试过但没有奏效的新东西:

  • 传输选项“ignoreTLS: true/false”(都试过了)
  • 传输选项“requireTLS: true/false”(都试过了)

【问题讨论】:

  • 你可以试试在transport上使用requireTLS: true这个选项吗?
  • @MikeGerard 感谢您的回复。只是试了一下。没有骰子,同样的错误信息。

标签: node.js smtp port nodemailer mailtrap


【解决方案1】:

您正在创建两个传输器。

而不是这个: let mailTransporter = nodemailer.createTransport(transport);mailTransporter.sendMail()

这样做: transport.sendMail()

【讨论】:

  • 天哪,谢谢。我一定有来自多个来源的糟糕副本/意大利面,完全错过了!
  • 您可以将此答案设置为已接受以关闭线程;)
  • 大声笑我也有同样的问题。我认为这将是一个常见问题,因为如果您从 ethermail.email 复制粘贴凭据,它会为您创建传输器
【解决方案2】:

修改; 让transport = nodemailer.createTransport({

成为; 让运输 = {

并删除右括号; });};

【讨论】:

    猜你喜欢
    • 2022-11-03
    • 2016-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-12
    • 2021-04-15
    • 2021-01-19
    • 2018-03-13
    相关资源
    最近更新 更多