Suchen / SearchNavigation |
Message IDs in Mail und Content IDs (cid) in HTML MailMessage-IDs sollte man beim Mail versand selbst bauen, wenn man für späteres Threading die Antworten identifizieren können will. Als Content-IDs taucht dasselbe Konzept auf, z.B. für eingebettete Bilder in HTML Mail. Dieser Code-Schnipsel spart hoffentlich wühlen in RFCs (namentlich zu multipart/related und Internet Message Protocol, 2822). Script-Tools wie PHPMailer erlauben ziemlich einfach, ein HTML Mail mit eingebetteten Bildern zu bauen. Dafür wird ein MIME Mail vom Typ multipart/related aufgebaut. Der HTML-Code steckt im ersten Teil und nutzt cids in den img scr= tags. Die übrigen Teile des multipart Mail sind die Bilder mit den entprechenden Content IDs. In den Tutorials hab ich nette Beispiele gefunden von Leuten, die wohl den PHPMailer gut verstanden haben, aber die benutzten cids waren schlicht nicht konform zum Standard. Folgendes PHP-Schnipsel sollte brauchbare Message-IDs und Content-IDs liefern.
Message-IDs haben dieselbe Struktur wie eine E-Mail-Adresse. Ihr Sinn ist aber nur, weltweit eindeutig zu sein, obwohl sie an verschiedenen Punkten der Welt unabhängig erzeugt werden. RFC 2822 wählt den Weg, dass nach dem @ ein Domain- oder Maschinenname benutzt wird, den man administrativ unter Kontrolle hat. Zwei Administratoren können sich so nie ins Gehege kommen. Beim Teil vor dem @-Zeichen muss sich der Admin darum kümmern, dass alles eindeutig ist. Die RFC schlägt eine Mischung aus Time Stamp und Randomwerten vor. Wichtig: Mail Headers dürfen maximal 76 Zeichen lang sein. Bei Message-IDs und Content-IDs schluckt der Name des Headers davon 12 Zeichen, Maximal 64 verbleiben also for die ID selbst. Deshalb auch die Hex-Codierung des Time Stamp, damit mehr Platz für eigene Stringteile bleibt. PHPMailer gibt es unter Ein Gegenentwurf, den ich noch nicht getestet hab, ist Swift, |