Jeder von uns bekommt wahrscheinlich jeden Tag Mails. Die einen bekommen mehr, die anderen bekommen weniger.
Die wenigsten User machen sich heutzutage darüber Gedanken, wie eine Mail entsteht bzw. aus welchen Bestandteilen diese zusammen gesetzt ist.
In einer anderen Sache habe ich mich genau damit beschäftigt, was eine Mail ausmacht und was sie alles enthalten kann sowie wie diese in unserem Mailclient bzw. online beim Mailanbieter für uns zu lesen ist.
Meine Aufzeichnungen sind nicht abschließend, sondern spiegeln mein Wissen wider und zeigen das, was ich bislang erreicht habe.
Generell kann man sagen, dass eine Mail 2 Hauptbestandteile (Mailheader und Mailbody) mit 3 Sektionen hat:
Der Mailheader beinhaltet alle technsichen Informationen, die die einzelnen Stellen, die die Mail ausliefern bzw. weiterleiten mitgegeben haben.
Die Mailtext kann in zwei Formaten vorliegen (entweder oder / beides zusammen):
Sobald eine Mail Plaintext und HTML-Text enthält, bekommt sie das Attribut: multipart (dazu später mehr)
Eine Mail kann im Klartext oder kodiert ausgeliefert werden. Wird sie kodiert ausgeliefert, so ist dies die base64-Kodierung.
Wichtig bei der Darstellung des Mailtextes ist es zu wissen, mit welchem Zeichensatz (charset) die Mail verfasst wurde. Generell nutzen die westlichen Ländern mittlerweile den Zeichensatz utf-8, aber besonders aus dem kyrillisch-sprachigen Raum kommen oftmals andere Zeichensätze mit. Das liegt oftmals daran, die der Mailclient es Mailverfassers eingerichtet ist.
Mailtexte im Klartext haben folgenden Eintrag: Content-Transfer-Encoding: quoted-printable
Mailtexte können aber auch eine Kodierung haben: Content-Transfer-Encoding: base64
Damit sind die Mailtexte als Rohdaten der Mail nicht lesbar und müssen dekodiert werden.
Alle Anlagen werden für gewöhnlich base64-kodiert: Content-Transfer-Encoding: base64
Die derzeit für mich wichtigsten Zeichensätze sind neben utf-8 die folgenden:
Es ist wirklich nicht einfach für den Hobbyprogrammierer, eine Mail zu analysieren und die Mailtext lesbar ohne Sonderzeichen zu machen und die Anlage abzuspeichern.
Je nach dem, welcher Zeichensatz genutzt wird, gibt es immer wieder andere Vorgehensweisen, um die Mail analysieren zu können.
In den folgenden Antworten auf diesen Eröffnungsthread möchte ich meine Erkenntnisse dokumentieren, da sie mittlerweile ein PHP-Skript umfassen, dass aus dem Ruder läuft.
Die in dem primären Beispiel verwendete Mail ist eine Phantasiemail mit Phantasiedaten soweit es die Identität der beteiligten Personen angeht.
Die Mail wird eine Multipart-Mail sein, mit dem Zeichensatz utf-8, mit Plain- und HTML-Text sowie mit Anlagen.
MIME 1.0
multipart/mixed
multipart/alternative
attachments
image/jpeg
Die wenigsten User machen sich heutzutage darüber Gedanken, wie eine Mail entsteht bzw. aus welchen Bestandteilen diese zusammen gesetzt ist.
In einer anderen Sache habe ich mich genau damit beschäftigt, was eine Mail ausmacht und was sie alles enthalten kann sowie wie diese in unserem Mailclient bzw. online beim Mailanbieter für uns zu lesen ist.
Meine Aufzeichnungen sind nicht abschließend, sondern spiegeln mein Wissen wider und zeigen das, was ich bislang erreicht habe.
Generell kann man sagen, dass eine Mail 2 Hauptbestandteile (Mailheader und Mailbody) mit 3 Sektionen hat:
- Mailheader
- Mailbody mit Mailtext Plain/HTML
- Mailbody mit Anlagen
Der Mailheader beinhaltet alle technsichen Informationen, die die einzelnen Stellen, die die Mail ausliefern bzw. weiterleiten mitgegeben haben.
Die Mailtext kann in zwei Formaten vorliegen (entweder oder / beides zusammen):
- Plaintext (also Klartext)
- HTML-Text (HTML-Rohdaten)
Sobald eine Mail Plaintext und HTML-Text enthält, bekommt sie das Attribut: multipart (dazu später mehr)
Eine Mail kann im Klartext oder kodiert ausgeliefert werden. Wird sie kodiert ausgeliefert, so ist dies die base64-Kodierung.
Wichtig bei der Darstellung des Mailtextes ist es zu wissen, mit welchem Zeichensatz (charset) die Mail verfasst wurde. Generell nutzen die westlichen Ländern mittlerweile den Zeichensatz utf-8, aber besonders aus dem kyrillisch-sprachigen Raum kommen oftmals andere Zeichensätze mit. Das liegt oftmals daran, die der Mailclient es Mailverfassers eingerichtet ist.
Mailtexte im Klartext haben folgenden Eintrag: Content-Transfer-Encoding: quoted-printable
Mailtexte können aber auch eine Kodierung haben: Content-Transfer-Encoding: base64
Damit sind die Mailtexte als Rohdaten der Mail nicht lesbar und müssen dekodiert werden.
Alle Anlagen werden für gewöhnlich base64-kodiert: Content-Transfer-Encoding: base64
Die derzeit für mich wichtigsten Zeichensätze sind neben utf-8 die folgenden:
- iso-8859-1
- iso-8859-2
- iso-8859-15
- windows-1250
- windows-1251
- us-ascii
- koi8-r
Es ist wirklich nicht einfach für den Hobbyprogrammierer, eine Mail zu analysieren und die Mailtext lesbar ohne Sonderzeichen zu machen und die Anlage abzuspeichern.
Je nach dem, welcher Zeichensatz genutzt wird, gibt es immer wieder andere Vorgehensweisen, um die Mail analysieren zu können.
In den folgenden Antworten auf diesen Eröffnungsthread möchte ich meine Erkenntnisse dokumentieren, da sie mittlerweile ein PHP-Skript umfassen, dass aus dem Ruder läuft.
Die in dem primären Beispiel verwendete Mail ist eine Phantasiemail mit Phantasiedaten soweit es die Identität der beteiligten Personen angeht.
Die Mail wird eine Multipart-Mail sein, mit dem Zeichensatz utf-8, mit Plain- und HTML-Text sowie mit Anlagen.
MIME 1.0
multipart/mixed
multipart/alternative
attachments
image/jpeg