Nodemailer Ethereal emails are not deliver to the gmail

Viewed 421

I'm trying to send emails using the following function using express js server. It seems to be working fine. But when I send email it’s not visible in my gmail inbox or spams.

Function i used:

const transporter = nodemailer.createTransport({
    host: 'smtp.ethereal.email',
    port: 587,
    auth: {
        user: 'leo.skiles74@ethereal.email',
        pass: 'BJkKV41tNZNBmMkkCw'
    }
});

function SendEmail(email,subject,text,html) {
    return new Promise(async (resolve, reject) => {
        try {
            let info = await transporter.sendMail({
                from: "leo.skiles74@ethereal.email",
                to: email,
                subject: subject,
                text: text,
                html:html
            })
            resolve(info)
        } catch (error) {
            reject(error)
        }
    })
}

Response received:

{
  "accepted": [
    "gayantaanus@gmail.com"
  ],
  "rejected": [],
  "envelopeTime": 759,
  "messageTime": 506,
  "messageSize": 596,
  "response": "250 Accepted [STATUS=new MSGID=YpXX5N-8J14cOJVHYpXjvw93heVfMHMGAAAAA4okSTkzId5ci.tBPvM2244]",
  "envelope": {
    "from": "leo.skiles74@ethereal.email",
    "to": [
      "gayantaanus@gmail.com"
    ]
  },
  "messageId": "<91f5d48e-a363-b59a-d47b-c44736e49c43@ethereal.email>"
}

But not delivered to gmail. How to fix and explain to me the reason ?

1 Answers

This is the way:

const nodemailer = require("nodemailer");
nodemailer.createTestAccount((err, account) => {
 if (err) {
console.error("Failed to create a testing account. " + err.message);
return process.exit(1);
}
console.log("Credentials obtained, sending message...");
let transporter = nodemailer.createTransport({
host: account.smtp.host,
port: account.smtp.port,
secure: account.smtp.secure,
auth: {
  user: account.user,
  pass: account.pass,
},
});
 let message = {
from: "Sender Name <sender@example.com>",
to: "Recipient <recipient@example.com>",
subject: "Nodemailer is unicode friendly ✔",
text: "Hello to myself!",
html: "<p><b>Hello</b> to myself!</p>",
};
transporter.sendMail(message, (err, info) => {
  if (err) {
    console.log("Error occurred. " + err.message);
  return process.exit(1);
}
console.log("Message sent: %s", info.messageId);
console.log("Preview URL: %s", nodemailer.getTestMessageUrl(info));
});
});
Related