Нет смысла. Даже если вы можете проверить, что адрес электронной почты синтаксически действителен, вам все равно нужно будет проверить, что это не было ошибкой, и что он действительно идет к человеку, которого вы так думаете. Единственный способ сделать это - отправить им электронное письмо и нажать на ссылку для проверки.
Таким образом, самая простая проверка (например, что они случайно не вошли в их адрес) обычно достаточно , Что-то вроде: он имеет ровно один знак @
и по крайней мере один .
в части после @
:
[^@]+@[^@]+\.[^@]+
Вы, вероятно, также захотите запретить пробелы - там вероятно, являются действительными адресами электронной почты с пробелами в них, но я их никогда не видел, поэтому вероятность того, что это ошибка пользователя, на вашей стороне.
Если вам нужна полная проверка, посмотрите этот вопрос .
Обновление: вот как вы могли бы использовать любое такое регулярное выражение:
import re
if not re.match(r"... regex here ...", email):
# whatever
Обратите внимание на r
перед строка; таким образом, вам не нужно будет избегать вещей дважды.
Если у вас есть большое количество регулярных выражений для проверки, возможно, быстрее скомпилировать регулярное выражение:
import re
EMAIL_REGEX = re.compile(r"... regex here ...")
if not EMAIL_REGEX.match(email):
# whatever