parseaddr(): Don't use rfc822.parseaddr() because this now implies a
double call to AddressList.getaddrlist(), and /that/ always returns an
empty list for the second and subsequent calls.
Instead, instantiate an AddressList directly, and get the parsed
addresses out of the addresslist attribute.
diff --git a/Lib/email/Utils.py b/Lib/email/Utils.py
index f8e48ef..927d67e 100644
--- a/Lib/email/Utils.py
+++ b/Lib/email/Utils.py
@@ -20,7 +20,6 @@
# We need wormarounds for bugs in these methods in older Pythons (see below)
from rfc822 import parsedate as _parsedate
from rfc822 import parsedate_tz as _parsedate_tz
-from rfc822 import parseaddr as _parseaddr
from quopri import decodestring as _qdecode
import base64
@@ -237,7 +236,7 @@
def parseaddr(addr):
- realname, emailaddr = _parseaddr(addr)
- if realname == '' and emailaddr is None:
+ addrs = _AddressList(addr).addresslist
+ if not addrs:
return '', ''
- return realname, emailaddr
+ return addrs[0]