Исторически, почему RFC об адресах электронной почты были настолько сложными?
RFC 5321, 5322 и 6531 имеют сложные правила для проверки адресов электронной почты. O ни:
- разрешить создавать комментарии внутри адреса электронной почты
- предложить сложные правила ограничения для символов:
"() ,:;<>@[\]
- лечить
postmaster
localpart как нечувствительный к регистру, но все остальные как чувствительный к регистру - разрешить группы адресов электронной почты
Благодаря этим сложным правилам проверка того, является ли данная строка синтаксически действительным адресом электронной почты в соответствии с RFC, не может быть выполнена с использованием только регулярных выражений.
По-видимому, многие из этих правил не поддерживаются основными поставщиками электронной почты.
С исторической точки зрения, что послужило мотивацией для создания столь сложных правил для адресов электронной почты? Статья в Википедии о происхождении электронной почты, по-видимому, подразумевает, что современный стандарт начала 1980-х годов предназначен для охвата всех устаревших систем электронной почты с их конкретными стандартами и синтаксисами.
Однако как разработчики стандартов, так и поставщики электронной почты и конечные пользователи электронной почты заинтересованы в рабочей системе, чего легче достичь, если правила не слишком сложны и могут быть легко встроены в программное обеспечение, которое проходит конечное число тестов, так почему у нас сегодня такой сложный стандарт, что никто не использует его в полной мере?
С исторической точки зрения, XML в значительной степени был заменен JSON, успех которого частично можно объяснить простотой его грамматики.
1 ответ
Единственный надежный способ узнать, является ли предоставленный адрес электронной почты подлинным, - отправить ему электронное письмо и посмотреть, получит ли его пользователь. Одна полезная проверка, которую можно выполнить с адресом, заключается в проверке синтаксически правильности адреса электронной почты. Это то, что делает этот модуль.
Системы, которые отправляют почту, должны быть способны обрабатывать исходящую почту для всех действительных адресов. Вопреки соответствующим стандартам, некоторые неисправные системы рассматривают определенные допустимые адреса как недействительные и не обрабатывают почту на эти адреса. Например, Hotmail отказывается отправлять почту на любой адрес, содержащий любой из следующих допустимых стандартов символов:!#$%*/?^`{|}~
Просто разные уровни стандартов, где некоторые очень строгие, поэтому сложные.