#7484: no more <> around addresses in VRFY or EXPN

The RFC doesn't say that they are allowed; apparently many mailers accept
them, but not postfix.  Contributions to this patch were made by Felipe Cruz
and Catalin Iacob.

The changeset also adds additional indirect tests for quoteaddr (null address
and IDNA-encoded address).
diff --git a/Lib/smtplib.py b/Lib/smtplib.py
index 9080e4a..7b97a6a 100644
--- a/Lib/smtplib.py
+++ b/Lib/smtplib.py
@@ -152,6 +152,13 @@
     else:
         return "<%s>" % m
 
+def _addr_only(addrstring):
+    displayname, addr = email.utils.parseaddr(addrstring)
+    if (displayname, addr) == ('', ''):
+        # parseaddr couldn't parse it, so use it as is.
+        return addrstring
+    return addr
+
 # Legacy method kept for backward compatibility.
 def quotedata(data):
     """Quote data for email.
@@ -514,14 +521,14 @@
 
     def verify(self, address):
         """SMTP 'verify' command -- checks for address validity."""
-        self.putcmd("vrfy", quoteaddr(address))
+        self.putcmd("vrfy", _addr_only(address))
         return self.getreply()
     # a.k.a.
     vrfy = verify
 
     def expn(self, address):
         """SMTP 'expn' command -- expands a mailing list."""
-        self.putcmd("expn", quoteaddr(address))
+        self.putcmd("expn", _addr_only(address))
         return self.getreply()
 
     # some useful methods