【问题标题】:Smtplib returns authentication failed despite good credentials尽管凭据良好,Smtplib 仍返回身份验证失败
【发布时间】:2012-12-25 22:42:18
【问题描述】:

我使用 django 后端发送电子邮件(但实际上 django 在这种情况下是无关紧要的),我可以通过独立客户端登录,但不能通过 smtplib。我不断得到:

SMTPAuthenticationError (535, '5.7.0 authentication failed')

【问题讨论】:

    标签: python django smtp smtplib


    【解决方案1】:

    在我的情况下,服务器似乎在撒谎,它在 hello 请求中响应了以下字符串:

    >>> conn.ehlo()
    (250,
    'edited.host.name Hello host.name [83.24.32.123], pleased to meet you\nENHANCEDSTATUSCODES\nPIPELINING\n8BITMIME\nSIZE\nDSN\nETRN\nAUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN\nDELIVERBY\nHELP')
    

    它宣布支持CRAM-MD5 身份验证方法,但它没有。

    由于我很着急,用管理员解决这个问题最终会错过最后期限,我不得不修补 SMTP 类以更喜欢PLAIN 身份验证方法。为此,您需要创建SMTP_SSL 的子类并覆盖login 方法,只需从SMTP 类中复制login 更改一行即可。

    换行:

    preferred_auths = [AUTH_CRAM_MD5, AUTH_PLAIN, AUTH_LOGIN]
    

    到:

    preferred_auths = [AUTH_PLAIN, AUTH_LOGIN]
    

    无论如何,我发布了修补类:http://pastebin.com/ecL9A3P4

    【讨论】:

      猜你喜欢
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-21
      • 2016-01-10
      • 2013-09-22
      • 2014-07-08
      • 2016-05-10
      相关资源
      最近更新 更多