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

集成Outlook SMTP邮件服务遇smtplib.SMTPAuthenticationError认证失败

Outlook SMTP 535认证失败问题解决方案

问题场景:集成Outlook SMTP服务触发自动化邮件时,抛出错误:smtplib.SMTPAuthenticationError: (535, b'5.7.139 Authentication unsuccessful, the user credentials were incorrect')
已尝试无效操作:

  • 启用MFA并使用应用密码
  • 重置邮箱SMTP设置
  • 禁用MFA后使用原账号密码认证

关键排查与解决步骤

1. 核对SMTP核心配置参数

Outlook SMTP的参数必须严格匹配,不能出错:

  • 服务器地址:smtp.office365.com
  • 端口:587(必须配合TLS加密)
  • 加密方式:连接后先调用starttls()启用加密

2. 确认账号SMTP权限

部分企业版Outlook账号可能被管理员限制了SMTP功能:

  • 联系企业IT,确认账号是否开启POP/IMAP/SMTP服务
  • 检查是否有组织级别的邮件发送限制(比如禁止第三方客户端发送)

3. 重新生成应用密码(MFA启用时)

如果用了MFA,应用密码的生成步骤不能错:

  • 登录微软账号安全中心,进入「高级安全选项」>「应用密码」
  • 生成时选择「其他(自定义名称)」,输入项目相关名称后生成,复制后立刻保存(生成后无法再次查看)
  • 确保输入应用密码时没有空格、大小写错误

4. 检查账号状态

  • 直接登录Outlook网页版,确认账号能正常登录、收发邮件,没有被锁定或冻结
  • 查看账号是否有未完成的安全验证步骤(比如手机号验证)

5. 排查代码常见错误

检查代码里的细节问题:

  • 邮箱地址必须完整(比如xxx@outlook.com或企业域名后缀)
  • 密码/应用密码没有拼写错误、多余空格
  • 确保在调用login()之前已经启用了TLS,参考示例代码:
import smtplib
from email.mime.text import MIMEText

sender = "your-account@outlook.com"
auth_code = "your-app-password-or-password"
receiver = "target@example.com"

content = MIMEText("自动化邮件测试内容")
content["Subject"] = "测试邮件"
content["From"] = sender
content["To"] = receiver

try:
    with smtplib.SMTP("smtp.office365.com", 587) as smtp_server:
        smtp_server.starttls()  # 必须先启动TLS加密
        smtp_server.login(sender, auth_code)
        smtp_server.sendmail(sender, receiver, content.as_string())
    print("邮件发送成功")
except smtplib.SMTPAuthenticationError as err:
    print(f"认证失败: {err}")

6. 排除网络/防火墙限制

  • 检查服务器或本地网络是否封禁了587端口
  • 切换网络(比如手机热点)测试,确认不是网络环境导致的连接问题

内容的提问来源于stack exchange,提问作者Sudhansu Sekhar Pati

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 23:51:08