我有一个 Python 代码,它会向我发送电子邮件以进行通知。它在 2024 年 10 月 1 日左右停止工作。我检查了错误,它很容易解释:

SMTPAuthenticationError:(535,b’5.7.139 身份验证不成功,基本身份验证已禁用。

[MW3PR06CA0022.namprd06.prod.outlook.com 2024-10-05T17:16:11.773Z 08DCE50B06703488]’)

然后我研究了一下,答案是使用 OAuth2 进行身份验证。为了做到这一点,我需要在 Azure Active Directory 或 Entra ID 中注册一个应用程序。我登录到 Azure 门户(使用我的个人电子邮件帐户)并单击 Entra ID,出现此错误:

{
  "sessionId": "4081aae14bea491097f866fbc809fc5d",
  "errors": [
{
      "errorMessage": "interaction_required: AADSTS16000: User account '{EUII Hidden}' from identity provider 'live.com' does not exist in tenant 'Microsoft Services' and cannot access the application '74658136-14ec-4630-ad9b-26e160ff0fc6'(ADIbizaUX) in that tenant. The account needs to be added as an external user in the tenant first. Sign out and sign in again with a different Azure Active Directory user account. Trace ID: e4c76820-5005-42a5-a10d-e862cb662700 Correlation ID: 8b7358b6-c2e9-4f7d-b743-f7e6cef91143 Timestamp: 2024-10-05 17:37:31Z",
  "clientId": "74658136-14ec-4630-ad9b-26e160ff0fc6",
  "scopes": [
    "a57aca87-cbc0-4f3c-8b9e-dc095fdc8978/.default"
  ]
}

进一步的研究表明,我使用的是个人帐户,而不是工作/学校帐户,因此我应该使用。我访问了该网站并四处查看,它再次将我指向 Azure AD… 所以基本上,我陷入了困境。

微软现在是否强迫每个人都为 Azure 订阅付费,还是我错过了什么?谢谢!

2

  • 我有同样的问题,你解决了吗?


    – 

  • @RodrigoSantamaria,不行。我按照 schmark 的建议生成了应用密码,但仍然不起作用。不过我并没有太努力。我刚刚切换到 Gmail,对我来说效果很好。


    – 


最佳答案
1

微软正在逐步淘汰应用密码,它可能不适用于所有帐户。

但在某些情况下,微软允许用户创建应用密码,作为不支持现代身份验证的旧应用程序的后备。这是一个随机生成的密码,您可以用它来代替普通密码。

方法如下:

  1. 转到 Microsoft 帐户安全设置。
  2. 启用两步验证(如果尚未完成)。
  3. 您现在应该看到一个创建应用程序密码的选项。
  4. 在您的 python/script 电子邮件中使用此应用程序密码进行 SMTP 身份验证。

另一个选择可能是检查电子邮件客户端的身份验证设置。详细介绍了这一点

1

  • 谢谢@schmark。我启用了 MFA 并创建了应用程序密码。我再次尝试,但仍然收到相同的错误:smtplib.SMTPAuthenticationError: (535, b’5.7.139 身份验证失败,基本身份验证已禁用。[MW4PR03CA0098.namprd03.prod.outlook.com 2024-10-09T15:09:35.396Z 08DCE76B8E2B473F]’)。我是否只使用新的应用程序密码代替我的主要 hotmail 密码,还是也应该更改我的 smtp 代码?谢谢


    –