Существует больше форм действующего адреса электронной почты в Интернете, чем вы, вероятно, представляете. Я бы предложил использовать чужой код для их анализа, например email.utils.parseaddr .
Например, следующий действительный адрес:
"Rocky J. Squirrel" <rocky.squirrel@gmail.com>
Здесь имя Rocky J. Squirrel
, а не "Rocky J. Squirrel"
.
Следующее также является допустимым синтаксисом и регулярно отображается в заголовках писем (обратите внимание на отсутствие разделителей <>):
rocky.squirrel@gmail.com (Rocky J. Squirrel)
Несмотря на то, что техническая часть в скобках является просто «комментарием», большинство почтовых клиентов интерпретируют ее как имя пользователя. (Так же как и электронная почта Python.utils.parseaddr.)
Чтобы действительно выполнить синтаксический анализ (спасая вас от чтения документов):
>>> import email.utils
>>> email.utils.parseaddr("John Smith <jsmith@gmail.com>")
('John Smith', 'jsmith@gmail.com')