javascript - Node.js nodemailer 模块成功消息,但从未收到电子邮件
问题描述
我之前已经实施过几次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,但这是我第一次遇到这个问题......
解决方案
推荐阅读
- node.js - 无法删除帖子(快递猫鼬邮递员)
- javascript - Javascript cookie 永远关闭
- java - 如何使用 Selenium 在 Heroku 上避免“进程运行 mem=544M(100.3%)”
- for-loop - R - 循环打开多个文件
- python - Plotly-Dash:如何跨两行跨越组件
- mysql - 为什么设置新的 MySQL 数据库时会显示错误?
- spring-security - 如何从 Spring Security 中删除 ROLE_ 前缀?
- css - 背景的 CSS 层 - 使用颜色不透明度的上层
- python - OpenCV:找不到大矩形轮廓
- node.js - @google-cloud/logging-winston Express 中间件请求捆绑问题