【问题标题】:Nodemailer and Outlook 365, 535 5.7.139 Authentication unsuccessful not meet criteriaNodemailer 和 Outlook 365、535 5.7.139 身份验证不成功不符合条件
【发布时间】:2022-06-22 16:47:45
【问题描述】:

我正在尝试从我的 Outlook 帐户(office 365 电子邮件)向我自己/我的组织中的其他人发送电子邮件。并从我的电子邮件中发送给我的用户,这些用户可能在办公室,也可能不在办公室。

我正在使用 Nodejs 和 Typescript,这一切都是通过我自己的电子邮件(我们组织的电子邮件)在服务器上发生的。所以这应该不需要人工交互/访问令牌或任何不应该过期的东西,需要手动设置,但应该是自动的或设置一次。

我尝试了以下设置

   const mailOptions = {
        from: "FROM@DOMAIN.AI",
        to: "TO@DOMAIN.AI",
        subject: req.title,
        text: req.contents,
      };

      const info = await transporter.sendMail(mailOptions);
export const transporter = nodemailer.createTransport({
  service: "Outlook365",
  auth: {
    user: "FROM@DOMAIN.AI",
    pass: "pass",
  },
});

这是我遇到的错误

[Node] error:   Invalid login: 535 5.7.139 Authentication unsuccessful, the request did not meet the criteria to be authenticated successfully. Contact your administrator. [VI1PR0501CA0022.eurprd05.prod.outlook.com]

在本地开发时会在 localhost 上发生这种情况,但稍后我会将其部署到 heroku。

我尝试了什么:

  1. Tried this solution and enabled Authenticated SMPT
  2. 尝试使用 OAUTH 并注册一个 azure 项目,但没有关于如何进行 SERVER-TO-SERVER 通信而不是客户端到服务器通信的资源。

我需要做什么:

  1. 我在组织中有电子邮件 A,我们有一个共享收件箱 B。理想情况下,我可以将电子邮件从 B 发送到 B(当用户向我们发送消息时,我希望它在共享收件箱中接收)

  2. 能够从 B(共享收件箱)发送给我们组织之外的其他用户(我们的应用用户)

在搜索和阅读文档数小时后,我无法确定这是否可行。所有解决方案都提到了 Azure,而我什至没有在我的应用程序中使用 Azure。我只需要通过我们的业务电子邮件(共享收件箱电子邮件)向我们自己和我们的用户发送电子邮件。我不使用任何 azure 服务,文档很大,很难导航,所以我不知道发生了什么。

【问题讨论】:

    标签: node.js azure email outlook nodemailer


    【解决方案1】:

    您需要通过将启用安全默认值切换为否来禁用 Azure 安全默认值。

    • 以安全管理员身份登录 Azure 门户。条件访问管理员或全局管理员,
    • 浏览到 Azure Active Directory 属性
    • 选择管理安全默认值。
    • 将启用安全默认设置开关设置为否。
    • 选择保存。

    您需要等待一段时间(几分钟),问题就会得到解决。

    【讨论】:

      【解决方案2】:

      是否启用了多因素身份验证。?然后你必须生成应用密码并使用它

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-22
        • 2022-08-05
        • 2022-07-23
        • 2016-01-19
        • 2019-01-26
        • 1970-01-01
        • 2023-02-08
        • 2021-10-13
        相关资源
        最近更新 更多