我有一个 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"
]
}
更多研究表明我使用的是个人帐户而不是工作/学校帐户,因此我应该使用 https://identity.microsoft.com/ 。我访问该网站并环顾四周,它再次将我引回 Azure AD...所以基本上,我陷入了循环。
Microsoft 现在是否强迫每个人为 Azure 订阅付费,还是我错过了什么?谢谢!
Microsoft 正在逐步淘汰应用程序密码,它可能不适用于所有帐户。
但在某些情况下,Microsoft 允许用户创建应用程序密码,作为不支持现代身份验证的旧应用程序的后备。这是随机生成的密码,您可以使用它来代替普通密码。
具体方法如下:
另一个选择可能是检查电子邮件客户端的身份验证设置。 这篇博文介绍了更多细节