I am having a problem sending email through smtp.gmail.com using 
smtplib.  Everything works and the mail is sent and received, except 
quit.  The following shows the problem (without bothering to login or do 
the sendmail):

>>>> import smtplib
>>>> server = smtplib.SMTP('smtp.gmail.com',25)
>>>> server.ehlo()
> (250, 'mx.google.com at your service, [68.98.218.211]\nSIZE 
> 28311552\n8BITMIME\nSTARTTLS\nENHANCEDSTATUSCODES')
>>>> server.starttls()
> (220, '2.0.0 Ready to start TLS')
>>>> server.ehlo()
> (250, 'mx.google.com at your service, [68.98.218.211]\nSIZE 
> 28311552\n8BITMIME\nAUTH LOGIN PLAIN\nENHANCEDSTATUSCODES')
>>>> server.noop()
> (250, '2.0.0 OK')
>>>> server.quit()
> 
> Traceback (most recent call last):
>   File "<pyshell#6>", line 1, in <module>
>     server.quit()
>   File "c:\Python25\lib\smtplib.py", line 716, in quit
>     self.docmd("quit")
>   File "c:\Python25\lib\smtplib.py", line 378, in docmd
>     return self.getreply()
>   File "c:\Python25\lib\smtplib.py", line 352, in getreply
>     line = self.file.readline()
>   File "c:\Python25\lib\smtplib.py", line 160, in readline
>     chr = self.sslobj.read(1)
> sslerror: (1, 'error:1408F10B:SSL routines:SSL3_GET_RECORD:wrong version 
> number')
>>>> 

I have not had this problem with other mail servers (but only tried 
two).  A solution for gmail seems to be to replace the server.quit() 
with server.close().  The difference between the two commands is quit() 
sends a 'QUIT' string before calling close().  Because close() is not 
included in the smtplib docs, it does not appear to be the right solution.

What is the correct way to terminate a gmail session?

Roger
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to