'Error: connect ECONNREFUSED Nodemailer Ethereal

I have an error when trying to use the example from nodemailer.

I modified it a little bit but it has all of the same core. When I try to run it I get this error:

Error: connect ECONNREFUSED 13.49.22.0:587
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1161:16) {
  errno: -111,
  code: 'ESOCKET',
  syscall: 'connect',
  address: '13.49.22.0',
  port: 587,
  command: 'CONN'
}

I have searched and I can't find any answers about this. I have heard that downgrading nodemailer's version to 4.7.0 fixes it but I have not tested this yet.

I also tested this connection to google, but it didn't work.

The function that is actually run is this:

async function nodeMailerMain() {
  // Generate test SMTP service account from ethereal.email
  // Only needed if you don't have a real mail account for testing
  let testAccount = await nodemailer.createTestAccount().catch((err) => console.log(err))

  // create reusable transporter object using the default SMTP transport
  let transporter = await nodemailer.createTransport({
    host: testAccount.smtp.host,
    port: testAccount.smtp.port,
    secure: testAccount.smtp.secure, // true for 465, false for other ports
    auth: {
      user: testAccount.user, // generated ethereal user
      pass: testAccount.pass, // generated ethereal password
    },
  })//.catch((err) => console.log(err))

  console.log(testAccount.smtp.host);

  console.log("successfully created transporter");

  let message = {
    from: 'Sender Name <[email protected]>',
    to: 'Recipient <[email protected]>',
    subject: 'Nodemailer is unicode friendly ✔',
    text: 'Hello to myself!',
    html: '<p><b>Hello</b> to myself!</p>'
  };

  // send mail with defined transport object
  transporter.sendMail(message, (error, info) => {
    if (error) {
      return console.log(error);
    }
    console.log('Email sent: ' + info.response);
    console.log("Message sent: %s", info.messageId);
    // Message sent: <[email protected]>
  
    // Preview only available when sending through an Ethereal account
    console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
    // Preview URL: https://ethereal.email/message/WaQKMgKddxQDoou...
  });
}



Solution 1:[1]

It turns out that, since I was using a Gitpod workspace, the email functionality had been blocked to avoid spam-bots. See this issue on Github for more information: https://github.com/gitpod-io/gitpod/issues/8976

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 mteam88