Index: Lib/smtplib.py =================================================================== --- Lib/smtplib.py (revision 57267) +++ Lib/smtplib.py (working copy) @@ -309,7 +309,7 @@ def send(self, str): """Send `str' to the server.""" if self.debuglevel > 0: print>>stderr, 'send:', repr(str) - if self.sock: + if hasattr(self, 'sock') and self.sock: try: self.sock.sendall(str) except socket.error: @@ -497,7 +497,7 @@ vrfy=verify def expn(self, address): - """SMTP 'verify' command -- checks for address validity.""" + """SMTP 'expn' command -- expands a mailing list.""" self.putcmd("expn", quoteaddr(address)) return self.getreply() Index: Lib/test/test_smtplib.py =================================================================== --- Lib/test/test_smtplib.py (revision 57267) +++ Lib/test/test_smtplib.py (working copy) @@ -82,8 +82,9 @@ # to reference the nonexistent 'sock' attribute of the SMTP object # causes an AttributeError) smtp = smtplib.SMTP() - self.assertRaises(AttributeError, smtp.ehlo) - self.assertRaises(AttributeError, smtp.send, 'test msg') + self.assertRaises(smtplib.SMTPServerDisconnected, smtp.ehlo) + self.assertRaises(smtplib.SMTPServerDisconnected, + smtp.send, 'test msg') def testLocalHostName(self): # check that supplied local_hostname is used