Commas in the name in an email address cause the address parser to parse the address as multiple addresses and therefore fail.
Take the following address for example: "Bond, James" <james.bond@spies.com>
It should have Bond, James as the name and james.bond@spies.com as the email, but instead it tries to parse Bond as an email address and fails.
Here's a traceback:
Traceback (most recent call last):
File "__main__.py", line 136, in <module>
main()
File "__main__.py", line 126, in main
download_calendars()
File "__main__.py", line 111, in download_calendars
sender='bondvillian@evil.com'
File "/usr/local/lib/python3.6/site-packages/marrow/mailer/message.py", line 79, in __init__
self.author = author
File "/usr/local/lib/python3.6/site-packages/marrow/mailer/message.py", line 95, in __setattr__
object.__setattr__(self, name, value)
File "/usr/local/lib/python3.6/site-packages/marrow/mailer/address.py", line 222, in __set__
value = self.cls(value)
File "/usr/local/lib/python3.6/site-packages/marrow/mailer/address.py", line 145, in __init__
self.extend(addresses)
File "/usr/local/lib/python3.6/site-packages/marrow/mailer/address.py", line 182, in extend
values = [Address(val) if not isinstance(val, Address) else val for val in sequence]
File "/usr/local/lib/python3.6/site-packages/marrow/mailer/address.py", line 182, in <listcomp>
values = [Address(val) if not isinstance(val, Address) else val for val in sequence]
File "/usr/local/lib/python3.6/site-packages/marrow/mailer/address.py", line 58, in __init__
raise ValueError('"{0}" is not a valid e-mail address: {1}'.format(email, err))
ValueError: "Bond" is not a valid e-mail address: An email address must contain a single @
This behavior is only expected if the name is not encapsulated with quotes.
Commas in the name in an email address cause the address parser to parse the address as multiple addresses and therefore fail.
Take the following address for example:
"Bond, James" <james.bond@spies.com>
It should haveBond, James
as the name andjames.bond@spies.com
as the email, but instead it tries to parseBond
as an email address and fails.Here's a traceback:
This behavior is only expected if the name is not encapsulated with quotes.