使用Python通过Outlook凭据发邮件遇SMTP认证失败求助
解决Outlook SMTP认证失败(535错误)的方案
以下是针对你遇到的smtplib.SMTPAuthenticationError: (535, b'5.7.3 Authentication unsuccessful')错误的排查和解决步骤:
确认两步验证与应用密码的匹配性
应用密码仅在微软账户开启两步验证时有效。如果你的账户未开启两步验证,生成的应用密码无效,需改用账户的普通登录密码;若已开启两步验证,需确保应用密码是在微软账户的「安全性」页面中生成的,生成时选择的应用类别为「邮件」或「其他(自定义名称)」,且复制密码时未遗漏或多输入字符(应用密码为16位无空格字符串)。检查邮箱账号格式
username必须填写完整的Outlook/Hotmail邮箱地址(如xxx@outlook.com),不能仅填写用户名前缀。尝试切换SMTP连接方式
你当前使用的是587端口+STARTTLS,可尝试直接使用465端口的SSL连接,代码示例如下:import smtplib outlook_server = 'smtp-mail.outlook.com' outlook_port = 465 username = 'your-full-email@outlook.com' password = 'your-app-password-or-account-password' # 直接使用SSL连接 with smtplib.SMTP_SSL(outlook_server, outlook_port) as server: server.login(username, password) # 后续添加发送邮件的逻辑解除账户登录限制
登录网页版Outlook,检查是否有安全提示(如异地登录提醒),按照提示完成身份验证,解除微软安全策略对该设备的登录限制。验证账户状态
确保账户未被锁定、欠费或处于异常状态,可通过微软账户中心查看账户的安全状态。
内容的提问来源于stack exchange,提问作者Mishal Anwer
相关产品推荐
相关产品推荐

