提问者:小点点

connect EconnRejected 127.0.0.1:587(nodemailer+mailtrap)


我一直在尝试获得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”(两者都试过)

共1个答案

匿名用户

你正在创建两个传送器。

取而代之的是:让mailTransporter=NodeMailer.createTransport(transport);mailTransporter.SendMail()

执行以下操作:transport.sendmail()

相关问题