Skip to content

Commit 9ee12cf

Browse files
bpo-27513: email.utils.getaddresses() now handles Header objects (GH-13797) (#27245)
getaddresses() should be able to handle a Header object if passed one. Co-authored-by: Łukasz Langa <[email protected]> (cherry picked from commit 89f4c34) Co-authored-by: Zackery Spytz <[email protected]>
1 parent 2f643b1 commit 9ee12cf

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

Lib/email/utils.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ def formataddr(pair, charset='utf-8'):
109109

110110
def getaddresses(fieldvalues):
111111
"""Return a list of (REALNAME, EMAIL) for each fieldvalue."""
112-
all = COMMASPACE.join(fieldvalues)
112+
all = COMMASPACE.join(str(v) for v in fieldvalues)
113113
a = _AddressList(all)
114114
return a.addresslist
115115

Lib/test/test_email/test_email.py

+5
Original file line numberDiff line numberDiff line change
@@ -3262,6 +3262,11 @@ def test_getaddresses_embedded_comment(self):
32623262
addrs = utils.getaddresses(['User ((nested comment)) <[email protected]>'])
32633263
eq(addrs[0][1], '[email protected]')
32643264

3265+
def test_getaddresses_header_obj(self):
3266+
"""Test the handling of a Header object."""
3267+
addrs = utils.getaddresses([Header('Al Person <[email protected]>')])
3268+
self.assertEqual(addrs[0][1], '[email protected]')
3269+
32653270
def test_make_msgid_collisions(self):
32663271
# Test make_msgid uniqueness, even with multiple threads
32673272
class MsgidsThread(Thread):
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
:func:`email.utils.getaddresses` now accepts
2+
:class:`email.header.Header` objects along with string values.
3+
Patch by Zackery Spytz.

0 commit comments

Comments
 (0)