--- _orig\smtplib.py Wed Sep 30 01:35:56 2009 +++ .\smtplib.py Mon Aug 23 12:36:20 2010 @@ -694,7 +694,9 @@ (code,resp) = self.mail(from_addr, esmtp_opts) if code != 250: - self.rset() + try: self.rset() + except (EnvironmentError, SMTPException): + pass raise SMTPSenderRefused(code, resp, from_addr) senderrs={} if isinstance(to_addrs, basestring): @@ -705,11 +707,15 @@ senderrs[each]=(code,resp) if len(senderrs)==len(to_addrs): # the server refused all our recipients - self.rset() + try: self.rset() + except (EnvironmentError, SMTPException): + pass raise SMTPRecipientsRefused(senderrs) (code,resp) = self.data(msg) if code != 250: - self.rset() + try: self.rset() + except (EnvironmentError, SMTPException): + pass raise SMTPDataError(code, resp) #if we got here then somebody got our mail return senderrs