我在Windows机器上运行VSCode,Nodejs,Nodemailer和Reactjs,但是我不能让Nodemailer发送电子邮件。根据网站上的说明,它应该可以工作。最后,我执行了以下操作:我创建了两个空文件夹,并在其中运行node init,安装了Nodemailer,并复制了电子邮件发送代码。在另一个文件夹中,我还运行了create-react-app。然后我对文件进行了足够的编辑,使发送代码能够运行。在第一个文件夹中,它可以正常工作,但在包含React的文件夹中,它不会执行任何操作。甚至不会执行通常的if(错误)/else(成功)语句,它们只是跳过。但是,在执行transporter.sendMail (或.verify)部分之前和之后的代码...有人知道为什么会发生这种情况吗?或者知道如何修复它?
下面是我在cra和非cra文件夹中运行的代码:
const nodemailer = require("nodemailer");
const SendEmail = message => {
const transporter = nodemailer.createTransport({
service: "Gmail",
auth: {
user: "from@gmail.com",
pass: "xxxxxxxx"
}
});
transporter.verify(function(error) {
if (error) {
console.log(error);
} else {
console.log("Server is ready to take our messages");
}
});
const mailOptions = {
from: "from@gmail.com",
to: "to@gmail.com",
subject: "Subject",
text: message,
html: "<b>Html</b>"
};
transporter.sendMail(mailOptions, (err, info) => {
if (err) console.log(err);
else console.log(info.response);
});
};
module.exports = SendEmail;时间
发布于 2020-04-01 14:31:19
Gmail有垃圾邮件过滤器来防止垃圾邮件,所以最有可能的是,如果没有适当的配置,你可能会在某些时候让它通过,而不是大多数时间。
在你的客户端应用中发送电子邮件也不是一个好主意,比如react。因为每个人都可以访问你的电子邮件和密码来做令人讨厌的事情,这真不是一个好主意。
最佳实践是请求您的节点服务器发送邮件。
除此之外,我注意到你使用gmail来做这件事。有一些免费的邮件伪造的stmp服务器,你可以做垃圾邮件,而没有邮件提供商标记为垃圾邮件用户。比如mailTrap,如果你只对测试感兴趣,react可以发送电子邮件,可以用mailtrap试试。我从来没有这样做过,但它仍然比使用你自己的电子邮件提供商更好,因为他们可能有关于它的过滤规则,这可能是你无法发送它的原因。
https://stackoverflow.com/questions/60958297
复制相似问题