【问题标题】:React and NodemailerReact 和 Nodemailer
【发布时间】: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


【解决方案1】:

Gmail 有垃圾邮件过滤器来阻止垃圾邮件,所以如果没有适当的配置,您很可能会在某个时候而不是大多数时候让它通过。

在您的客户端应用程序中发送电子邮件不是一个好主意,例如 react。由于每个人都可以访问您的电子邮件和密码来做讨厌的事情,这并不是一个好主意。

最佳做法是请求您的节点服务器发送邮件。

除此之外,我注意到您使用 gmail 来执行此操作。有一些免费的邮件伪造 stmp 服务器,您可以在没有邮件提供商将您标记为垃圾邮件用户的情况下发送垃圾邮件。比如mailTrap,如果你只是想测试一下,react 可以发邮件,试试mailtrap。我从不这样做,但仍然比使用您自己的电子邮件提供商更好,因为他们可能有过滤规则,可能是您无法发送的原因。

【讨论】:

  • 使用例如我自己的 ISP 的服务器,也会发生同样的事情,没有 React 的 Nodemailer 可以工作,但没有。
  • 请问您为什么要使用 React 发送邮件?
  • 因为通过客户端应用程序发送邮件是不切实际的,用户可以侵入您的客户端应用程序并且您的邮箱注定要失败。
  • 此时我只是在测试,而且我还读到在 Internet 上使用 Nodemailer 是不安全的。 (但是,我可能会在 LAN 中使用它,我知道用户不会对邮箱构成威胁。)但是......这让我感到困惑,为什么 Nodemailer 在安装 React 后停止工作。我看不到连接。
猜你喜欢
  • 1970-01-01
  • 2018-11-23
  • 2014-04-27
  • 1970-01-01
  • 1970-01-01
  • 2020-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多