Sono consentiti due periodi nella parte locale di un indirizzo e-mail?


13

Un relay gateway di posta elettronica di terze parti si rifiuta di elaborare un messaggio per un indirizzo email a cui stiamo inviando. L'indirizzo è nel formato di nome..ultimo nome @ recipientdomain.com (notare i due punti). È consentito dalle linee guida RFC?

RFC 2822 sembra opporsi a questo nella sezione 3.4.1:

La stringa interpretata localmente è una stringa tra virgolette o un atomo di punti. Se la stringa può essere rappresentata come un punto-atomo (cioè, non contiene caratteri diversi dai caratteri di testo o "." Circondato da caratteri di testo), allora DOVREBBE essere utilizzata la forma punto-atomo e la forma di stringa tra virgolette DOVREBBE NON essere utilizzato. I commenti e lo spazio bianco pieghevole NON DOVREBBERO essere utilizzati intorno alla "@" nelle specifiche addr.

Inoltre, nella stessa sezione, fa riferimento a questo:

addr-spec = dominio "@" della parte locale

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

Interpreto questo per indicare che la parte locale può avere contenuto separato da punti ma non possono esserci due punti successivi e non può iniziare o terminare con un punto. Detto questo, non ho familiarità con la sintassi punto-atomo, quindi forse mi sbaglio qui.

Qualcuno può confermare e spiegare?

Risposte:


13

Sì hai ragione. La sezione che hai citato dice che deve essere una stringa tra virgolette O un atomo di punti. Dal momento che non è chiaramente una stringa tra virgolette (la mancanza di racchiudere "lo chiarisce) deve essere un punto-atomo ...

Questo ci porta alla definizione di punto-atomo:

Guarda questo tranne RFC 5322 (3.2.3 - pagina 13) (RFC 2822 contiene una sezione simile) il suggerimento è 1*in dot-atom-text = 1*atext *("." 1*atext). Ciò significa effettivamente che un punto-atomo è costituito da stringhe di uno o più caratteri "atext" separati da punti. Una stringa di 0 caratteri atext non conta e quindi non puoi avere due punti successivi (separati da 0 caratteri) o un punto iniziale o finale.

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

La tua interpretazione è corretta. La parte locale può contenere gruppi di testi separati da punti, ma non sono consentiti più periodi consecutivi.

Secondo la sezione 3.4.1 di RFC 5322 che hai citato nella tua domanda, un atomo di punto " non contiene caratteri diversi dai caratteri atext o". "Circondato da caratteri atext ". Quindi, per definizione, un atomo di punti non può contenere due o più periodi consecutivi.

Per riferimento, ecco la definizione atext, presa dalla Sezione 3.2.3 di RFC 5322 :

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

Naturalmente, nessun MTA impone RFC allo stesso modo, quindi alcuni MTA accettano periodi doppi, mentre altri no. Ad esempio, Exchange rifiuterà di consegnare per indirizzi che contengono periodi doppi, ma un rapido test di una selezione casuale di 3 server di posta che utilizzo tutti i periodi doppi di supporto.

Quindi, rigorosamente secondo la RFC 5322, l'organizzazione che ospita il relè con cui hai problemi rientra nei loro diritti di rifiutare indirizzi contenenti periodi doppi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.