This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

classification
Title: email examples don't actually work (SMTP.connect is not called)
Type: Stage: resolved
Components: Documentation, Library (Lib) Versions: Python 3.2, Python 3.3, Python 2.7
process
Status: closed Resolution: duplicate
Dependencies: Superseder: Call connect() before sending an email with smtplib
View: 11883
Assigned To: asmodai Nosy List: asmodai, georg.brandl, jaraco, matt, sandro.tosi
Priority: normal Keywords:

Created on 2010-03-27 18:20 by jaraco, last changed 2022-04-11 14:56 by admin. This issue is now closed.

Messages (5)
msg101833 - (view) Author: Jason R. Coombs (jaraco) * (Python committer) Date: 2010-03-27 18:20
Documentation for Python 2.6.5 and 3.1.2 both describe using the smtplib as so:

    s = smtplib.SMTP()
    s.sendmail(me, [you], msg.as_string())
    s.quit()

However, this sample usage is incorrect and doesn't work in practice, because s.connect() is never called. If the reader copies the example code, he will get an error on the call to sendmail:

    smtplib.SMTPServerDisconnected: please run connect() first

The documentation should be updated to reflect the requisite s.connect() call (or to supply sample host/port parameters in the construction).

It appears that in the 2.3.5 docs, the .connect() call was there. I have not yet investigated why it was removed.
msg101839 - (view) Author: Jason R. Coombs (jaraco) * (Python committer) Date: 2010-03-27 18:34
It appears in r71882, the change was made in deference to issue4239.
msg101840 - (view) Author: Jason R. Coombs (jaraco) * (Python committer) Date: 2010-03-27 18:38
According to issue4239#msg75355, the connect call is not required, but I believe he is mistaken. The connect call is required unless the s object is constructed with host/port parameters, in which case the call to connect (without any parameters) will result in various output depending on how localhost responds to the connection request.

In any case, the original recommendation still stands, that the .connect() call should be restored.
msg101841 - (view) Author: Jason R. Coombs (jaraco) * (Python committer) Date: 2010-03-27 18:39
Matt, I hope you don't mind, but I added you as nosy on this issue as it relates to a change you suggested.
msg150482 - (view) Author: Sandro Tosi (sandro.tosi) * (Python committer) Date: 2012-01-02 22:54
This has already been fixed in issue11883 changing the SMTP constructor call.
History
Date User Action Args
2022-04-11 14:56:59adminsetgithub: 52492
2012-01-02 22:54:07sandro.tosisetstatus: open -> closed

superseder: Call connect() before sending an email with smtplib
versions: + Python 2.7, Python 3.2, Python 3.3, - Python 2.6, Python 3.1
nosy: + sandro.tosi

messages: + msg150482
resolution: duplicate
stage: resolved
2010-04-02 08:31:09georg.brandlsetassignee: georg.brandl -> asmodai

nosy: + asmodai
2010-03-27 18:39:55jaracosetnosy: + matt
messages: + msg101841
2010-03-27 18:38:21jaracosetmessages: + msg101840
2010-03-27 18:34:46jaracosetmessages: + msg101839
2010-03-27 18:20:46jaracocreate