Комментарии 7
То есть, строго говоря, ben"@“lolwat@gitpush--force.com должен быть валидным адресом
Вот ни разу. RFC5322#3.2.5 вполне вменяемо говорит, что строка в кавычках является самостоятельной единицей, семантически эквивалентной атому. Атомы же, согласно RFC5322#3.2.3, разделяются точками, а не идут слитно один за другим.
Исходя из этого, валидные варианты подобного адреса могут быть такими:
"ben@lolwat"@gitpush--force.com
ben."@“.lolwat@gitpush--force.com К слову, адреса, подобные первому из двух, у меня точно работали корректно.
А вот показанный автором адрес - невалиден по причине отсутствия точек. Или валиден только с учётом, что не просто "удаление точек допустимо", но оно также реализовано и поддерживается, что как раз и не догма.
«Адреса электронной почты можно валидировать при помощи регулярных выражений»
Ну да, есть же простенькая регулярка )
Email это сложный формат с множеством исторических исключений и разной поддержкой у почтовых сервисов. Поэтому пытаться идеально проверять его через строгие правила или regex на практике неэффективно. В большинстве случаев достаточно простой проверки формата и обязательного подтверждения адреса через письмо. Такой подход снижает количество ошибок и не блокирует реальных пользователей.
На одной конференции был классный квиз про подводные камни форматов E-mail адресов, попробуйте пройти (не реклама!) _https://hostobzor.ru/email.html
Жаль, что это перевод статьи и автор не прочувствует IDN-проблемы non-ascii мира, но остальные могут попробовать)
А я вот такой квиз встречал https://e-mail.wtf/
Много лет назад сделал себе '_'@example.com, собственно, как только узнал какие символы можно использовать в имейле.

Несколько собак и другие наши заблуждения об адресах электронной почты