Sind zwei Punkte im lokalen Teil einer E-Mail-Adresse zulässig?

13

Ein E-Mail-Gateway-Relay eines Drittanbieters verweigert die Verarbeitung einer Nachricht für eine E-Mail-Adresse, an die wir senden. Die Adresse hat das Format Vorname..Nachname @ Empfängerdomäne.com (beachten Sie die beiden Punkte). Ist dies nach RFC-Richtlinien zulässig?

RFC 2822 scheint dem in Abschnitt 3.4.1 zu widersprechen:

Die lokal interpretierte Zeichenfolge ist entweder eine Zeichenfolge in Anführungszeichen oder ein Punktatom. Wenn die Zeichenfolge als Punktatom dargestellt werden kann (das heißt, sie enthält keine anderen Zeichen als ein Textzeichen oder ein ".", Das von einem Textzeichen umgeben ist), sollte die Punktatomform verwendet werden und die Anführungszeichenfolge sollte NICHT verwendet werden verwendet werden. Kommentare und faltbare Leerzeichen DÜRFEN NICHT um das "@" in der Adr-Spezifikation verwendet werden.

Darüber hinaus wird in demselben Abschnitt auf Folgendes verwiesen:

addr-spec = local-part "@" domain

local-part = Punktatom / Anführungszeichenfolge / obs-local-part

Ich interpretiere dies so, dass der lokale Teil durch Punkte getrennten Inhalt haben kann, es jedoch keine zwei aufeinander folgenden Punkte geben kann und er nicht mit einem Punkt beginnen oder enden kann. Davon abgesehen kenne ich mich mit der Punkt-Atom-Syntax nicht aus. Vielleicht irre ich mich hier.

Kann das bitte jemand bestätigen und erklären?

Mike B
quelle

Antworten:

13

Ja du hast Recht. Der Abschnitt, den Sie zitiert haben, besagt, dass es sich um eine Zeichenfolge ODER ein Punktatom handeln muss. Da es sich eindeutig nicht um eine zitierte Zeichenfolge handelt (das Fehlen einer Einschließung "macht dies deutlich) , muss es sich um ein Punktatom handeln ...

Das führt uns zur Definition des Punktatoms:

Schauen Sie sich diese mit Ausnahme von RFC 5322 (3.2.3 - Seite 13) (RFC 2822 enthält einen ähnlichen Abschnitt) der Hinweis ist 1*in dot-atom-text = 1*atext *("." 1*atext). Dies bedeutet effektiv, dass ein Punktatom aus Folgen von einem oder mehreren "A-Text" -Zeichen besteht, die durch Punkte getrennt sind. Eine Zeichenfolge mit 0 Textzeichen zählt nicht. Sie können also nicht zwei aufeinanderfolgende Punkte (durch 0 Zeichen getrennt) oder einen führenden oder nachfolgenden Punkt eingeben .

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
Philip Couling
quelle
4

Ihre Interpretation ist richtig. Der lokale Teil kann durch Punkte getrennte Textgruppen enthalten, mehrere aufeinanderfolgende Punkte sind jedoch nicht zulässig.

Gemäß Abschnitt 3.4.1 von RFC 5322 , die Sie in Ihrer Frage zitiert : „ein Punkt Atom enthält keine anderen Zeichen als AText Zeichen“. „Oder durch AText Zeichen umgeben “. Per Definition kann ein Punktatom daher nicht zwei oder mehr aufeinanderfolgende Perioden enthalten.

Als Referenz dient hier die atext-Definition aus Abschnitt 3.2.3 von RFC 5322 :

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

Natürlich erzwingen keine zwei MTAs RFCs auf dieselbe Weise, so dass Sie feststellen werden, dass einige MTAs doppelte Zeiträume akzeptieren, während andere dies nicht tun. Beispielsweise verweigert Exchange die Zustellung von Adressen, die doppelte Punkte enthalten. Es wird jedoch ein kurzer Test einer zufälligen Auswahl von drei Mailservern durchgeführt, für die ich alle doppelten Punkte verwende.

Gemäß RFC 5322 hat die Organisation, die das Relais hostet, mit dem Sie Probleme haben, das Recht, Adressen mit doppelten Punkten abzulehnen.

Richard Keller
quelle