
Was vermisse ich...
Gegeben: Linux-Stack-basiertes E-Mail-Serversystem (gehostet) mit Webmail-Komponente.VerschiedenE-Mail-Clients und andere Webmail-Systeme sind eingebunden und damit getestet.
Wir verteilen E-Mails über Verteilerlisten mithilfe des Webmail-Clients. Das Mailsystem sendet E-Mails ähnlich dem folgenden Beispiel (Kopie aus dem Header der Quell-E-Mail). Dabei organisation
handelt es sich um den Namen einer Verteilerliste:
Date: Sat, 20 Apr 2024 18:35:45 +0200
Message-ID: <[email protected]>
From: [email protected]
To: organisation: [email protected], [email protected];
Subject: here goes the subject
Soweit so gut, die E-Mails werden einwandfrei zugestellt (auch an GMX-Postfächer) und es wird keine Meldung „E-Mail nicht zustellbar“ empfangen.
Ausgabe
Weiters führen Antworten mit der Nachricht "An alle" von bestimmten E-Mail-Clients oder Webmail-Systemen (z. B. GMX Webmail) zu offensichtlich falsch formatierten Headern (während z. B. Thunderbird ein korrektes Format erzeugt). Diese Antworten werden von bestimmten Systemen abgelehnt; Beispielnachricht:
Ihre E-Mails wurden von unserem Mailsystem abgelehnt, da die Angaben im E-Mail-Header nicht den Vorgaben in RFC 5322 und RFC 2047 entsprechen. Das Header-Feld "An" ist syntaktisch nicht korrekt.
Der betreffende E-Mail-Header sieht folgendermaßen aus (achten Sie bitte besonders auf die Zeile „An:“):
Received: from ...
Reply-To: ...
From: <[email protected]>
To: <[email protected]>, <organisation: [email protected]>;
References: <[email protected]>
In-Reply-To: <[email protected]>
Subject: AW: here goes the subject
Offenbar interpretieren gewisse Mailclients den angegebenen Namen der Verteilerliste als Teil der E-Mail-Adresse des ersten Adressaten.
Die Fragen, die sich stellen, sind: (1) Wer ist der Übeltäter? (2) Was ist das richtige Format? (3) Befolgt der Server, der die Originalnachricht verteilt, bestimmte RFCs nicht oder handelt es sich um einen Fehler in einem Mail-Client oder Mail-System?
===== letzte Bearbeitung =====
Dies ist offensichtlich ein Fehler in Horde. Ticket erstellt.
Antwort1
(das ist wahrscheinlich falsch, wird aber so belassen, da es weiter unten eine nützliche Diskussion gibt)
Wobei „Organisation“ der Name einer Verteilerliste ist:
Was auch immer die ursprüngliche E-Mail generiert, ist hier schuld. Postfachnamen (der Teil vor @domain) können Leerzeichen, @-Zeichen und alle möglichen anderen seltsamen Dinge enthalten. Die Weiterleitung interpretiert den ersten Eintrag aus dem To:-Header also korrekt als „Organisation:[email geschützt]".
Ich müsste viel lesen, um herauszufinden, ob ein Leerzeichen explizit in Anführungszeichen gesetzt oder maskiert werden muss (das Zeichen „@“ in einem Postfachnamen tut dies). Daher kann ich Ihnen nicht sagen, ob der Fehler, der besagt, dass dies nicht RFC-konform ist, zutrifft. Dieser Punkt ist jedoch hinfällig, da dies auch dann nicht das von Ihnen beabsichtigte Verhalten ist, wenn es nicht erforderlich wäre.
Antwort2
RFC 5322ist die aktuelle Spezifikation für Gruppenadressen. Sie werden im Anhang A.1.3 erläutert, wo es heißt:
From: Pete <[email protected]> To: A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>; […]
In dieser Nachricht
To:
hat das Feld einen einzelnen Gruppenempfänger namens "Eine Gruppe", das 3 Adressen enthält […]
Die Adressspezifikation ist formal in Abschnitt 3.4 definiert, und von hier aus werde ich nur die relevanten Teile herausgreifen:
3.4. Adressspezifikation
Eine Adresse kann entweder ein einzelnes Postfach oder eine Gruppe von Postfächern sein.
group = display-name ":" [group-list] ";" [CFWS] group-list = mailbox-list / CFWS mailbox-list = (mailbox *("," mailbox)) mailbox = name-addr / addr-spec name-addr = [display-name] angle-addr angle-addr = [CFWS] "<" addr-spec ">" [CFWS]
Und
3.4.1. Addr-Spec-Spezifikation
Eine Adressspezifikation ist ein spezifischer Internetbezeichner, der eine lokal interpretierte Zeichenfolge gefolgt vom At-Zeichen („@“, ASCII-Wert 64) und einer Internetdomäne enthält. […] Kommentare und Leerzeichen sollten um das „@“ in der Adressspezifikation NICHT verwendet werden.
addr-spec = local-part "@" domain local-part = dot-atom / quoted-string domain = dot-atom / domain-literal
Und
3.2.3. Atom
dot-atom = [CFWS] dot-atom-text [CFWS]
Ich habe obs-*
hier die Einträge weggelassen, die in der formalen Spezifikation von RFC 5322 vorhanden sind, da sie auf veraltete Muster verweisen. CFWS
gibt an, dass Kommentare und/oder das Umbrechen von Leerzeichen zulässig sind.
Dementsprechend sollten beide Formate gemäß der Definition akzeptiert werden group-list
:
A Group:Ed Jones <[email protected]>,[email protected],John <[email protected]>;
A Bare Group:[email protected],[email protected],[email protected];
Wenn Sie diese Interpretation auf Ihre eigene Gruppenliste anwenden, würde ich sagen, dass das, was Sie haben, gültig ist:
To: organisation: [email protected], [email protected];
und daher liegt der Fehler bei den Empfängersystemen. (Oder bei einem Zwischensystem mit aggressiver Header-Umschreibung. Wenn Sie Ihre E-Mails über eine Firewall senden oder Ihre Kunden sie über eine solche empfangen, würde ich das überprüfen.)