Я не видел ответа уже здесь среди беспорядка пользовательских ответов Regex, но ...
Python имеет модуль под названием validate_email , который имеет 3 уровня электронной почты проверка подлинности, в том числе запрос действительного SMTP-сервера, если адрес электронной почты действителен (без отправки электронной почты).
Проверьте правильность формата электронной почты:
from validate_email import validate_email
is_valid = validate_email('example@example.com')
Проверьте, SMTP-сервер:
is_valid = validate_email('example@example.com',check_mx=True)
Проверьте, есть ли у хоста SMTP-сервер и действительно ли это письмо:
is_valid = validate_email('example@example.com',verify=True)
Для тех, кто интересуется грязными деталями, validate_email.py ( source ) стремится быть верным RFC 2822 .
Все, что мы действительно делаем, это сравнение входной строки с одним гигантским регулярным выражением , Но создание этого регулярного выражения и обеспечение его правильности облегчается путем сборки его из «токенов», определенных RFC. Каждый из этих токенов проверяется в прилагаемом файле тестового файла.
blockquote>Для установки с помощью pip
pip install validate_email
, и вам понадобится модуль pyDNS для проверка SMTP-серверов
pip install pyDNS