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

Python SMTP凭据正确但认证失败:与PowerShell脚本对比排查

排查Office365 SMTP Python认证失败的思路

1. 核对凭据细节

  • 确认Python脚本里的username是完整邮箱地址(和PowerShell中$credential的用户名完全一致,Office365不支持仅用邮箱前缀登录)
  • 检查密码是否包含特殊字符,Python中若密码有引号、反斜杠等,尝试用原始字符串r"your_password"避免转义问题
  • 若账号开启MFA:Python的smtplib不支持现代MFA认证,必须使用应用专用密码;而PowerShell可能依赖系统凭据缓存或域绑定机器的认证豁免,能正常使用普通密码

2. 修正SMTP连接与邮件格式

  • 尝试切换SSL连接方式:PowerShell的UseSsl = $true可能直接走465端口的SSL,而Python用的是587端口STARTTLS,可换用SMTP_SSL直接连465:
    with smtplib.SMTP_SSL("smtp.office365.com", 465) as server:
        server.login(username, password)
        server.sendmail(send_from, to_email, email_body)
    
  • 修复邮件格式:PowerShell会自动构造符合标准的邮件头,而Python的sendmail需要完整的RFC格式邮件内容,建议用email模块生成:
    from email.mime.text import MIMEText
    
    msg = MIMEText("邮件正文内容")
    msg['Subject'] = "邮件主题"
    msg['From'] = send_from
    msg['To'] = to_email
    
    with smtplib.SMTP("smtp.office365.com", 587) as server:
        server.starttls()
        server.login(username, password)
        server.send_message(msg)
    

3. 检查Office365账号与租户设置

  • 确认目标邮箱的SMTP AUTH权限:进入Exchange admin中心 → 收件人 → 邮箱 → 对应邮箱 → 邮件流 → 邮件应用程序权限,确保“SMTP AUTH”为启用状态
  • 检查租户全局SMTP设置:若租户层面禁用了SMTP AUTH,单邮箱开启也无效,需管理员在Exchange admin中心 → 设置 → 邮件流 → 传输设置中开启
  • 排查安全策略:确认Python运行机器的IP是否被Office365的反垃圾邮件策略拦截,PowerShell运行环境可能在信任IP范围内

4. 排查网络与环境差异

  • 核对网络环境:若PowerShell在公司内网(有IP白名单),而Python在外部网络,需确认外部网络是否允许访问Office365的SMTP端口
  • 配置代理:若机器走代理,PowerShell可能自动使用系统代理,Python需手动配置:
    import smtplib
    import socks
    
    socks.set_default_proxy(socks.HTTP, "proxy.example.com", 8080)
    socks.wrapmodule(smtplib)
    
    # 后续正常执行SMTP连接逻辑
    

5. 开启SMTP调试日志

  • 在Python中开启调试模式,查看与服务器的交互细节,对比PowerShell的执行日志定位错误:
    with smtplib.SMTP("smtp.office365.com", 587) as server:
        server.set_debuglevel(1)  # 开启调试输出
        server.starttls()
        server.login(username, password)
        server.sendmail(send_from, to_email, email_body)
    
    从调试日志的服务器返回码(如535 5.7.139 Authentication unsuccessful),可对应Office365官方错误文档精准排查

内容的提问来源于stack exchange,提问作者Djaq Harris

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:17:07