Ich bin wirklich verwirrt, wenn es um das Format Content-Id
Header in Nachrichtenteile kommt.Das genaue Format der Content-ID-Header
Es scheint mir, dass nur RFC 2045 das Format des Headers umfasst, wenn auch nur kurz:
ein hochrangiges User-Agent Bei der Konstruktion kann es wünschenswert sein einen Körper zu ermöglichen Bezug auf eine andere zu machen . Dementsprechend kann Körper seine
markiert mit dem "Content-ID" Header-Feld, die syntaktisch
identisch mit dem "Message-ID" Header-Feld ist:id := "Content-ID" ":" msg-id
Wie die Message-ID-Werte, Content- ID-Werte müssen generiert werden, um weltweit einzigartig zu sein.
RFC 2822 erläutert das Format eines Token msg-id
etwa so:
Die Nachrichtenkennung (msg-id) in der Syntax ein Winkel-addr Konstrukt ohne den inneren CFWS ähnlich ist.
message-id = "Message-ID:" msg-id CRLF
in-reply-to = "In-Reply-To:" 1 * msg-id CRLF
Referenzen = Referenzen“ :“1 * msg-id CRLF
msg-id = [CFWS] "<" id-links "@" id-right ">"[CFWS]
id-links = Punkt-Atom-Text/no-fold-quote/obs-id-links
i d-rechts = dot-Atom-text/no-fach-wörtliche/obs-id-rechts
no-fach-quote = DQUOTE * (qtext/quoted-pair) DQUOTE
no-fach-wörtliche = "[" * (dtext/quoted-pair) "]"
Lange Rede kurzer Sinn: es enthält den bei ('@') Symbol, genau wie die Message-Id
Header einer Nachricht. Fast alle leserfreundlichen Artikel im MIME-Format geben jedoch Beispiele für Content-Id
ohne das das at-Symbol (einschließlich nicht-wirklich-globale Bezeichner wie myimagecid
oder inlineimage001
sowie zufällig generierte UUIDS ohne das Symbol at). Sie würden sicherlich die Bedeutung des '@' - Symbols hervorheben, wenn das notwendig wäre, genauso wie sie es mit dem Header Message-Id
tun, richtig? Recht?
Ich habe einige Tests auf der realen Welt E-Mail-Clients laufen und sehen, wie sie E-Mails mit eingebetteten Inline-Bilder zusammensetzen:
- Thunderbird erzeugt Bezeichner mit dem at-Symbol. Beispiel:
[email protected]
- Google Mail generiert IDs ohne Symbol und ohne Domäne-Teil.Beispiel:
ii_abc1234x0_12345ab12abcdefa
habe ich nicht getestet keine weiteren E-Mail-Clients (wenn jemand getan hat, es wäre toll, die Liste oben zu vervollständigen), aber diese beiden zeigen bereits den auffallenden Unterschied. Google nicht RFC-Standards einhalten? Es sieht bestimmt stinkig aus und ich möchte wissen, ob das daran liegt, dass ich etwas verpasst habe, oder weil das Format doch nicht wirklich so wichtig ist (was sich auf die Dauer eher störend anfühlt). Ich bin auch interessiert zu überprüfen, wie viele populäre E-Mail-Clients das 'at' Symbol tatsächlich verwerfen.
Spezifikationen sind beim Verfassen von E-Mails sehr nützlich. Wenn ich eingehende E-Mails analysiere, muss ich mir bewusst sein, welche Verstöße gegen den Standard beabsichtigt sind (Gmail) oder ob sie bösartig sein sollen (Spam) und entsprechend handeln. Ich kann nicht einfach jede E-Mail ablehnen, die nicht den Spezifikationen entspricht. Nutzen Sie nun Ihre 17-jährige Erfahrung in der Verwaltung dieses verrückten Hauses. Könnten Sie bitte Ihre Antwort erweitern und mir mitteilen, welche anderen Teile der Spezifikationen wahrscheinlich von E-Mail-Clients/-Servern verletzt werden? Ich bin auch sehr neugierig, welche anderen Spezifikationen Google verletzt (es muss nicht mailbezogen sein). – Tomalla
Ich habe ein bisschen über Parsing Adressheader zurück im Jahr 2013 http://jeffreystedfast.blogspot.com/2013/08/why-decoding-rfc2047-encoded-headers-is.html und dann einen Thunderbird-Entwickler, der schimpfte (viel Eloquenter als ich selbst) über ähnliche Probleme mit E-Mails, die Sie unter http://quetzalcoatal.blogspot.com/ finden - er hat eine ganze Reihe von Blog-Posts, die ich Ihnen sehr empfehlen würde, wenn Sie daran interessiert sind, einen MIME-Parser zu implementieren oder auch nur E-Mail-Adressen-Parser. – jstedfast
Die anderen GMail-Abweichungen von den Mail-Spezifikationen, die ich entdeckt habe, waren in ihrer IMAP-Implementierung. Zum Beispiel haben sie nicht die 'ALL', 'FAST' oder' FULL' Aliase behandelt, die vor ein paar Jahren für den 'FETCH' Befehl definiert wurden (vielleicht ist das jetzt behoben, da bin ich mir nicht sicher). Die IMAP-Serverimplementierung von Google Mail bricht ab, wenn sie verschachtelte Multiparts mit der gleichen Grenze trifft, und gibt eine "BODYSTRUCTURE" wie das Beispiel in https://github.com/jstedfast/MailKit/issues/205 zurück - während ich aus der Sicht eines IMAP-Clients ärgerlich bin verstehen und mit Google zu diesem Thema sympathisieren. – jstedfast