为什么我使用一个月前运行的代码获得smtplib.SMTPAuthenticationError:(500,b' 5.3.3无法识别的命令')?

时间:2015-11-29 09:20:48

标签: python-3.x exchangewebservices

我上个月成功使用以下代码连接到Exchange服务器并通过Exchange服务器发送邮件。我使用的是python 3.5。

import smtplib
# ...
s=smtplib.SMTP('outlook.office365.com', 587)
s.starttls()
s.login(user, pwd)

今天,它给了我

smtplib.SMTPAuthenticationError: (500, b'5.3.3 Unrecognized command')

我看到了相关的错误报告here,但无法弄清楚这对我有何帮助。

我做错了什么?

2 个答案:

答案 0 :(得分:3)

这是python 3.5.0中引入的一个错误:https://bugs.python.org/issue25446,这应该在python 3.5.1中修复。 (我还没试过这个,因为我在研究这个bug的时候偶然发现了这个问题)

编辑:刚刚测试过,smtplib + python 3.5.1 + office365工作

答案 1 :(得分:0)

您可能想查看的其他内容。仔细检查您的用户名和密码是否正确输入。在python 3.5中,显示的错误不会明确告诉您您的用户名不正确,您只会看到

smtplib.SMTPAuthenticationError: (500, b'5.3.3 Unrecognized command') 

对于两个不正确的凭据,如果不允许使用gmail安全性较低的应用程序(与python 3.6不同,您会看到

),
smtplib.SMTPAuthenticationError: (535, b'5.7.8 Username and Password not accepted. Learn more at\n5.7.8  https
ials m11-v6sm24489408pfj.25 - gsmtp')

如果您的凭据不正确。