smtplib, auth and covad

David Geller kelzar at
Thu Nov 18 16:41:01 CET 2004


I had been using smptlib to send email via my covad relay previously (several months ago), and it worked fine. Covad requires authentication, and this was accomplished fine with smtp.login(usrname, pwd).

Today when I tried the program, it stopped working. Using the smtp debug option, I determined that when 

send: 'AUTH PLAIN abcdef\r\n'

I would get the exception:

smtplib.SMTPServerDisconnected: Connection unexpectedly closed

Soooooo, it turns out that the covad mail server does not like to have the base64 username/password in the same line as the AUTH PLAIN. While it appears that the RFC2554 allows for this, covad does not (anymore).

I had to modify  smtplib.login() to do the following:

wait for status code 334
send the base64 username/password
wait for status code 235

--------------------------------------- CODE
elif authmethod == AUTH_PLAIN:
            (code, resp) = self.docmd("AUTH", AUTH_PLAIN)
            if code != 334:
                raise SMTPAuthenticationError(code, resp)
            (code, resp) = self.docmd(encode_plain(user, password),"")

Question: should the official smtplib be modified to allow for this situation?

(Python 2.3)


David Geller

 Posted Via Premium Usenet Newsgroup Services

More information about the Python-list mailing list