您收到的错误意味着正在与之交谈的SMTP服务器不声称支持身份验证。如果您查看调试输出,将会发现对的响应均不
EHLO包含的必要声明
AUTH。如果它(正确地)支持身份验证,则响应之一将是:
250 AUTH GSSAPI DIGEST-MD5 PLAIN
(至少是
EHLO对
STARTTLS。之后的响应。)由于未包含该响应,因此smtplib假定服务器将无法处理该
AUTH命令,并将拒绝发送该命令。如果确定SMTP服务器
AUTH即使不发布该命令也支持该命令,则可以通过将SMTP服务器显式添加到功能集中
来 暗中说服smtplib支持该命令
AUTH。您需要知道支持哪种身份验证方案,然后可以执行以下操作:
smtp.starttls()smtp.ehlo()# Pretend the SMTP server supports some forms of authentication.smtp.esmtp_features['auth'] = 'LOGIN DIGEST-MD5 PLAIN'
…但是当然要使SMTP服务器按照规范运行是一个更好的主意:)



