You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python调用Outlook发邮件遇SMTPAuthenticationError求助

Outlook SMTP认证失败解决方法

原因

报错535 Authentication unsuccessful, basic authentication is disabled是因为微软已禁用Outlook/Hotmail账号的SMTP基本认证,无法直接用账号密码登录SMTP服务器。

有效解决方法

方法1:使用应用密码(需开启两步验证)

  • 先为你的Outlook/Hotmail账号开启两步验证
  • 登录微软账户安全中心,找到「应用密码」选项,生成一个专属应用密码
  • 将代码中的<MY PASSWORD>替换成这个生成的应用密码,代码无需其他修改:
from redmail import outlook

outlook.user_name = "example@hotmail.com"
outlook.password = "<生成的应用密码>"

outlook.send(
    receivers=["you@example.com"],
    subject="An example",
    text="Hi, this is an example."
)

方法2:OAuth2认证(推荐,更安全)

Redmail支持Outlook的OAuth2认证,步骤如下:

  1. 登录Azure门户,注册一个新应用,账户类型选择「任何组织目录中的账户和个人Microsoft账户」
  2. 为应用添加SMTP.Send的Microsoft Graph API权限,并完成权限同意(个人账号可直接同意)
  3. 获取应用的客户端ID、客户端密钥,个人账号的租户ID填consumers
  4. 修改代码配置OAuth2参数:
from redmail import outlook

outlook.user_name = "example@hotmail.com"
outlook.client_id = "<你的客户端ID>"
outlook.client_secret = "<你的客户端密钥>"
outlook.tenant_id = "consumers" # 企业账号填对应的租户ID

outlook.send(
    receivers=["you@example.com"],
    subject="An example",
    text="Hi, this is an example."
)

注意事项

  • 未开启两步验证的账号无法使用应用密码,建议直接采用OAuth2方式
  • 确保你的账号没有被微软限制SMTP服务访问

内容的提问来源于stack exchange,提问作者Harish Hari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 05:06:02