send(), ehlo(): Integrate patch #487310 by Fazal Majid. Consistently
call self.close() just before raising SMTPServerDisconnected. This
allows you to, e.g. reconnect after a server timeout.
Merged from the 2.2c1 branch.
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index d8b18e9..cb15de2 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -294,6 +294,7 @@
while sendptr < len(str):
sendptr = sendptr + self.sock.send(str[sendptr:])
except socket.error:
+ self.close()
raise SMTPServerDisconnected('Server not connected')
else:
raise SMTPServerDisconnected('please run connect() first')
@@ -380,6 +381,7 @@
# MTA's will disconnect on an ehlo. Toss an exception if
# that happens -ddm
if code == -1 and len(msg) == 0:
+ self.close()
raise SMTPServerDisconnected("Server not connected")
self.ehlo_resp=msg
if code != 250: