【发布时间】:2020-07-12 11:02:03
【问题描述】:
我在 Windows 机器上运行 VSCode、Nodejs、Nodemailer 和 Reactjs,但我无法让 Nodemailer 发送电子邮件。根据网上的说明,它应该可以工作。最后我做了以下事情:我创建了两个空文件夹,我在这两个文件夹中运行 node init,安装 Nodemailer,并复制电子邮件发送代码。在另一个文件夹中,我还运行了 create-react-app。然后我编辑了足够让发送代码运行的文件。 在第一个文件夹中它可以正常工作,但在带有 React 的文件夹中,它什么也没做。甚至通常的后续 if(error)/else(success) 语句都不会被执行,它们只是被跳过了。但是,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;
提姆
【问题讨论】:
-
能否请您出示您正在使用 CRA 文件夹的代码?
-
如果我没记错的话,nodemailer 不会工作,除非你使用 Nodejs 作为你的后端
标签: reactjs nodemailer