我有一个 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
最佳答案
1
微软正在逐步淘汰应用密码,它可能不适用于所有帐户。
但在某些情况下,微软允许用户创建应用密码,作为不支持现代身份验证的旧应用程序的后备。这是一个随机生成的密码,您可以用它来代替普通密码。
方法如下:
- 转到 Microsoft 帐户安全设置。
- 启用两步验证(如果尚未完成)。
- 您现在应该看到一个创建应用程序密码的选项。
- 在您的 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 代码?谢谢
–
|
–
–
|