OVH企业邮箱自动发送邮件遇SMTPAuthenticationError(535)问题排查求助
解决OVH企业邮箱SMTP认证失败(535错误)的问题
我来帮你排查这个困扰你的问题——你遇到的smtplib.SMTPAuthenticationError: (535, b'5.7.3 Authentication unsuccessful')本质是OVH的SMTP服务器拒绝了你的登录请求,虽然你确认账号密码正确,但OVH企业邮箱有几个特殊的配置要求,咱们一步步来解决:
1. 先修正代码里的两个明显错误
首先看你的代码里sendmail的调用:
mailserver.sendmail(people, people, msg.as_string())
这里第一个参数应该是发件人邮箱(也就是你的mymail),而不是收件人!正确写法是:
mailserver.sendmail(mymail, people, msg.as_string())
Gmail可能对这个参数校验比较宽松,但OVH的SMTP服务器很可能因为发件人参数不匹配拒绝认证,先把这个改过来。
另外,你的发件人邮箱地址写的是"name.@watchelp-app.com",多了一个多余的点,应该是"name@watchelp-app.com",这个笔误也会直接导致认证失败,一定要修正!
2. 核对OVH的SMTP服务器配置细节
你当前用的pro2.mail.ovh.net和587端口是OVH企业邮箱的标准配置,但还是建议你登录OVH管理后台,找到对应邮箱账户的SMTP设置页面,确认以下信息:
- 确认SMTP服务器地址是否匹配你的套餐(部分特殊套餐可能用
ssl0.ovh.net) - 端口是否正确:587是STARTTLS端口(对应你代码里的
starttls()调用),如果换成465端口则需要用smtplib.SMTP_SSL()初始化服务器,不能再调用starttls() - 确保你的账户没有被禁用POP/IMAP/SMTP服务(有些企业账户默认会关闭这些服务,需要手动开启)
3. 检查OVH的安全限制规则
OVH企业邮箱为了安全,有几个常见限制会导致认证失败:
- 应用专用密码:如果你的邮箱开启了两步验证,必须使用应用专用密码代替主密码登录SMTP;即使没开两步验证,部分OVH套餐也要求自动化工具使用应用密码。你可以在OVH后台的账户安全设置里生成一个应用密码,替换脚本里的
password试试。 - IP白名单:很多企业邮箱会只允许指定IP地址登录SMTP服务,如果你的脚本运行机器的公网IP不在白名单里,服务器会直接拒绝认证。需要登录OVH后台,把当前机器的公网IP添加到邮箱账户的IP白名单中。
- 登录方式限制:有些企业账户会禁止“非浏览器”的登录请求,你需要在后台调整安全设置,允许SMTP客户端登录。
4. 手动测试SMTP连接(可选)
如果以上方法都没解决,你可以用openssl手动测试SMTP连接,定位具体失败环节:
在终端运行:
openssl s_client -connect pro2.mail.ovh.net:587 -starttls smtp
然后按照提示输入以下命令(替换成你的邮箱和密码,密码需要Base64编码):
EHLO yourdomain.com AUTH LOGIN # 输入你的邮箱的Base64编码 # 输入你的密码的Base64编码
如果这一步也报错,就能直接看到OVH服务器返回的具体错误信息,帮你更快定位问题。
内容的提问来源于stack exchange,提问作者pgmendormi




