Search code examples
node.jssmtpgmailnodemailer

nodemailer etimedout with gmail


I am using nodemailer to send a very basic test mail via smtp.gmail.com

var nodemailer = require("nodemailer");
 var transporter = nodemailer.createTransport({
    auth: {
      user: "my email",
      pass: "app password",
    },
    host: "smtp.gmail.com",
    port: 587,
    secure: false,
    requireTLS: true,
  });

  var mailOptions = {
    from: "sender mail",
    to: "receiver mail",
    subject: "Sending Email using Node.js",
    text: "That was easy!",
  };

  transporter.sendMail(mailOptions, function (error, info) {
    if (error) {
      console.log(error);
    } else {
      console.log("Email sent: " + info.response);
    }
  });

I have tested a lot of solutions but none of them works. Every time I try, I get this error

Error: connect ETIMEDOUT 74.125.140.108:587
    at TCPConnectWrap.afterConnect [as oncomplete] (node:net:1187:16) {
  errno: -4039,
  code: 'ESOCKET',
  syscall: 'connect',
  address: '74.125.140.108',
  port: 587,
  command: 'CONN'
}

I tried to send email through nodemailer with gmail account but it is not working.it is giving me this error. i don't know why it is not working.please help.


Solution

  • You are using the wrong port

    const transporter = nodemailer.createTransport({
      host: "smtp.gmail.com",
      service: "Gmail",
      port: 465,
      secure: true,
      auth: {
        user: process.env.USER,
        pass: process.env.APPPASS,
      },
    });