Чи допускається два періоди в локальній частині електронної адреси?


13

Стороннє реле шлюзу електронної пошти відмовляється обробляти повідомлення для електронної адреси, яку ми надсилаємо. Адреса у форматі ім'я..ласт @ ім'я одержувача (зазначте два періоди). Чи це дозволено керівництвом RFC?

Здається, RFC 2822 заперечує це в розділі 3.4.1:

Місцево інтерпретована рядок є або котированим рядком, або крапковим атомом. Якщо рядок може бути представлений у вигляді атома крапки (тобто він не містить символів, крім символів atext або ".", Оточених символами atext), тоді форма ДО-АТОМА БУДЬ використовуватися, а форма цитуваного рядка НЕ ​​ПОВИННА бути використаним. Коментарі та складений пробіл НЕ БУДЬ використовуватися навколо "@" в addr-специфікації.

Крім того, у цьому ж розділі вона посилається на це:

addr-spec = домен "@" локальної частини

local-part = dot-atom / quoti-string / obs-local-part

Я інтерпретую це так, що локальна частина може мати вміст, розділений крапками, але не може бути двох послідовних точок, і вона не може починатися або закінчуватися крапкою. Попри це, я не знайомий із синтаксисом крапкових атомів, тому, можливо, тут помиляюся.

Чи може хтось, будь ласка, підтвердити та пояснити?

Відповіді:


13

Так, ви праві. У розділі, який ви цитували, йдеться про те, що це повинно бути цитований рядок АБО крапковий атом. Оскільки його явно не цитується рядок (відсутність вкладеного матеріалу "робить це зрозумілим), він повинен бути атомом крапки ...

Це призводить нас до визначення точки-атома:

Подивіться на це , за винятком з RFC 5322 (3.2.3 - стор 13) (RFC 2822 містить аналогічний розділ) натяк є 1*в dot-atom-text = 1*atext *("." 1*atext). Це фактично означає, що атом крапки складається з рядків одного або декількох символів "atext", розділених крапками. Рядок із 0 символів atext не враховується, і тому у вас не може бути двох послідовних крапок (розділених на 0 символів) або провідної чи кінцевої точки.

RFC 5322                Internet Message Format             October 2008


   atext           =   ALPHA / DIGIT /    ; Printable US-ASCII
                       "!" / "#" /        ;  characters not including
                       "$" / "%" /        ;  specials.  Used for atoms.
                       "&" / "'" /
                       "*" / "+" /
                       "-" / "/" /
                       "=" / "?" /
                       "^" / "_" /
                       "`" / "{" /
                       "|" / "}" /
                       "~"

   atom            =   [CFWS] 1*atext [CFWS]

   dot-atom-text   =   1*atext *("." 1*atext)

   dot-atom        =   [CFWS] dot-atom-text [CFWS]

   specials        =   "(" / ")" /        ; Special characters that do
                       "<" / ">" /        ;  not appear in atext
                       "[" / "]" /
                       ":" / ";" /
                       "@" / "\" /
                       "," / "." /
                       DQUOTE

4

Ваше тлумачення правильне. Локальна частина може містити групи тексту, розділені періодами, але кілька послідовних періодів не допускаються.

Згідно з розділом 3.4.1 RFC 5322, який ви цитували у своєму запитанні, атом крапки " не містить жодних символів, крім символів atext або". "Оточених символами atext ". Отже, за визначенням, точковий атом може не містити двох або більше послідовних періодів.

Для довідки, ось визначення тексту, взятого з розділу 3.2.3 RFC 5322 :

atext           =       ALPHA / DIGIT / ; Any character except controls,
                        "!" / "#" /     ;  SP, and specials.
                        "$" / "%" /     ;  Used for atoms
                        "&" / "'" /
                        "*" / "+" /
                        "-" / "/" /
                        "=" / "?" /
                        "^" / "_" /
                        "`" / "{" /
                        "|" / "}" /
                        "~"

Зрозуміло, жоден два MTA не застосовують RFC однаково, тому ви знайдете, що деякі MTA прийматимуть подвійні періоди, коли інші не будуть. Наприклад, Exchange відмовиться доставляти адреси, що містять подвійні періоди, але швидкий тест випадкового вибору 3 поштових серверів, якими я користуюсь всі подвійні періоди підтримки.

Так суворо згідно з RFC 5322, організація, що розміщує естафету, з якою у вас виникають проблеми, входить у свої права відмовляти адресам, що містять подвійні періоди.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.