Обновить

Комментарии 7

То есть, строго говоря, ben"@“lolwat@gitpush--force.com должен быть валидным адресом

Вот ни разу. RFC5322#3.2.5 вполне вменяемо говорит, что строка в кавычках является самостоятельной единицей, семантически эквивалентной атому. Атомы же, согласно RFC5322#3.2.3, разделяются точками, а не идут слитно один за другим.

Исходя из этого, валидные варианты подобного адреса могут быть такими:

"ben@lolwat"@gitpush--force.com 
ben."@“.lolwat@gitpush--force.com 

К слову, адреса, подобные первому из двух, у меня точно работали корректно.

А вот показанный автором адрес - невалиден по причине отсутствия точек. Или валиден только с учётом, что не просто "удаление точек допустимо", но оно также реализовано и поддерживается, что как раз и не догма.

Это ж rfc822, ещё с адресами UUCP, а то ФИДО, но без punycode или SMTPUTF8 😉

Email это сложный формат с множеством исторических исключений и разной поддержкой у почтовых сервисов. Поэтому пытаться идеально проверять его через строгие правила или regex на практике неэффективно. В большинстве случаев достаточно простой проверки формата и обязательного подтверждения адреса через письмо. Такой подход снижает количество ошибок и не блокирует реальных пользователей.

На одной конференции был классный квиз про подводные камни форматов E-mail адресов, попробуйте пройти (не реклама!) _https://hostobzor.ru/email.html

Жаль, что это перевод статьи и автор не прочувствует IDN-проблемы non-ascii мира, но остальные могут попробовать)

А я вот такой квиз встречал https://e-mail.wtf/

Много лет назад сделал себе '_'@example.com, собственно, как только узнал какие символы можно использовать в имейле.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации