Patch by Per Cederqvist, seemingly approved by The Dragon:
Two problems: The SMTPRecipientsRefused class should not inherit
SMTPResponseException, since it doesn't provide the smtp_code and
smtp_error attributes. My patch for not adding an extra CRLF was
apparently forgotten. The enclosed patch fixes these two problems.
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index 0f202da..370182e 100755
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -86,7 +86,7 @@
self.sender = sender
self.args = (code, msg, sender)
-class SMTPRecipientsRefused(SMTPResponseException):
+class SMTPRecipientsRefused(SMTPException):
"""All recipient addresses refused.
The errors for each recipient are accessable thru the attribute
'recipients', which is a dictionary of exactly the same sort as
@@ -371,8 +371,11 @@
if code <> 354:
raise SMTPDataError(code,repl)
else:
- self.send(quotedata(msg))
- self.send("%s.%s" % (CRLF, CRLF))
+ q = quotedata(msg)
+ if q[-2:] != CRLF:
+ q = q + CRLF
+ q = q + "." + CRLF
+ self.send(q)
(code,msg)=self.getreply()
if self.debuglevel >0 : print "data:", (code,msg)
return (code,msg)