Barnabas Olugbogi
Barnabas Olugbogi

Reputation: 1

Error: connect ECONNREFUSED 127.0.0.1:587

I want to send a message to an email using nodemailer but I keep getting this error ~

even though I am getting { "success": true, "message": "Email Sent" } as my response but in the console, I am getting the error below

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

here is my server.js file

const express = require("express");
const app = express();
const cors = require("cors");
const bodyParser = require("body-parser");
const sendEmail = require("./utils/SendEmail");

//midddleware
app.use(express.json());
app.use(cors());
app.use(bodyParser.json());

//Routes
app.get("/", (req, res) => {
  res.send("Home Page");
});

app.post("/api/itemsresults", async (req, res) => {
  const { email } = req.body;

  try {
    const send_to = "[email protected]";
    const sent_from = process.env.EMAIL_USER;
    const reply_to = "[email protected]";
    const subject = "Thank you message";
    const message = `
    <h3>Hello Zino</h3> 
    <p>Thank you for your tutorial</p>
    `;
    await sendEmail(send_to, sent_from, reply_to, subject, message);
    res.status(200).json({ success: true, message: "Email Sent" });
  } catch (err) {
    res.status(500).json({ message: err.message });
  }
});
const PORT = process.env.PORT || 5000;

app.listen(PORT, () => {
  console.log(`Server is running on Port ${PORT}`);
});

}

here is my sendMail.js file

const nodemailer = require("nodemailer");

const sendEmail = async (subject, message, send_to, sent_from, reply_to) => {
  const transporter = nodemailer.createTransport({
    host: process.env.EMAIL_HOST,
    port: "587",
    secure: false,
    auth: {
      user: process.env.EMAIL_USER,
      pass: process.env.EMAIL_PASS,
    },
    tls: {
      rejectUnauthorized: false,
    },
    debug: true,
  });

  const options = {
    from: sent_from,
    to: send_to,
    subject: subject,
    html: message,
    replyTo: reply_to,
  };

  //SendEmail
  transporter.sendMail(options, function (err, info) {
    if (err) {
      console.log(err);
    } else {
      console.log(info);
    }
  });
};

module.exports = sendEmail;

Upvotes: 0

Views: 1034

Answers (0)

Related Questions