Я реализовал nodemailer несколько раз назад, но никогда не сталкивался с такой странной проблемой. В основном информация говорит о том, что письмо отправлено, но я так и не получил его. Например, вот вывод от сервера, когда я делаю запрос API к моей конечной точке почтовой рассылки:
{ from: 'mail@gmail.com',
to: 'my-personal-mail@gmail.com',
subject: 'Your xx password',
html:
'<p>Hi, Name <br>, We received a request to reset your password. <br> Therefore your new password is: <stong>yiH5S0P43M</strong></p>' }
{ accepted: [ 'to-my-personal-mail@gmail.com' ],
rejected: [],
envelopeTime: 396,
messageTime: 689,
messageSize: 448,
response: '250 2.0.0 OK 1571325863 25sm1485661lje.58 - gsmtp',
envelope:
{ from: 'mail@gmail.com',
to: [ 'my-personal-mail@gmail.com' ] },
messageId: '<message-id-here@gmail.com>' }
Так что в принципе все выглядит хорошо из информационного сообщения обратного вызова, сообщение об ошибке также является нулевым, но сообщение непройтиНиже приведена моя фактическая реализация кода
var nodemailer = require('nodemailer');
var transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: 'mymail@gmail.com',
pass: 'mypassword'
}
});
const mailOptions = {
from: 'mymail@gmail.com', // sender address
to: `${docs[0].email}`, // list of receivers
subject: 'Your password', // Subject line
html: `<p>Hi, ${docs[0].first_name} <br>, We received a request to reset your password. <br> Therefore your new password is: <stong>${new_password}</strong></p>`
};
transporter.sendMail(mailOptions, function(err, info) {
console.log(err, info)
if (err)
return res.status(500).send();
else
return res.status(200).send({
status: 'OK',
message: 'Success.',
});
});
И, кстати, я включил менее защищенные приложения в своем gmail, опять же, я не впервые внедряю nodemailer, но впервые сталкиваюсь с этой проблемой. ..