Index: Lib/smtplib.py =================================================================== --- Lib/smtplib.py (revision 60977) +++ Lib/smtplib.py (working copy) @@ -285,12 +285,14 @@ i = host.rfind(':') if i >= 0: host, port = host[:i], host[i+1:] - try: port = int(port) - except ValueError: - raise socket.error, "nonnumeric port" + port = int(port) + if not port: port = self.default_port if self.debuglevel > 0: print>>stderr, 'connect:', (host, port) - self.sock = self._get_socket(host, port, self.timeout) + try: + self.sock = self._get_socket(host, port, self.timeout) + except socket.error, msg: + raise SMTPConnectError(msg.errno, msg.strerror) (code, msg) = self.getreply() if self.debuglevel > 0: print>>stderr, "connect:", msg return (code, msg)