Suche

Aufbau einer E-Mail

Beim Versand einer E-Mail von einem Server zu einem anderen (zu sogenannten MTA - Mail Transfer Agent) mittels des SMTP (Simple Mail Transfer Protocol) besteht die E-Mail aus folgenden Bereichen:

1. Envelope (Umschlag)

Hier sind die Informationen sehr reduziert. Diese bestehen aus den folgenden Informationen die auch in der Log-Datei hinterlegt werden:

  • Absendeadresse (MAIL FROM)
  • Empfangsadresse (RCPT TO)
  • E-Mail-ID (Message-ID)

sowie wenige weitere wie E-Mailgröße.
Der Umschlag wird beim Einliefern der E-Mail in das Postfach auf dem Server entfernt.

2. Der E-Mail selbst
Diese besteht auf zwei Teilen die mit einer Leerzeile getrennt werden:

2a) Der sogenannten E-Mail-Kopf (E-Mail-Header)

Hier stehen alle wichtigen Informationen wie beispielsweise:

  • From (vollständig inkl. Textteil)
  • To (vollständig inkl. Textteil)
  • Subject
  • Message-ID
  • Received-Zeilen (die von den durchlaufenden MTAs geschrieben werden: in diesem teilt der empfangende MTA mit wann und von welchem Computer die E-Mail empfangen wurde)
  • Formatierungshinweise für den Inhalt

sowie weitere Informationen die vom E-Mailprogramm oder dem MTAs hinein geschrieben werden wie Virenprüfungsergebnisse u.a.

2b) Der E-Mailnachricht (E-Mail-Message)

Der Inhalt der E-Mail mit u.U. verschiedenen Blöcken. Dieser wird i.d.R. nicht von dem MTA verändert.

Blöcke der E-Mailnachricht

Im E-Mailheader steht die initiale Beschreibung der E-Mailnachricht. Hier zwei mögliche Beispiele:
Content-Type: <MIME-Type>; charset="<CHAR-Set>"
Beispiel: Content-Type: text/html; charset="utf-8"
oder
Content-Type: <MIME-Type>; boundary="<STRING>"
Beispiel: Content-Type: multipart/alternative; boundary="kssrkwg4rjsfjg3rkksngsg"

Hierbei muss man wissen, dass jeder Bereich der E-Mailnachricht - wie eingefügte Bilder, Text, Anhänge und anderes - einen eigenen Content-Type hat. Besteht die E-Mailnachricht aus mehr als einem Bereich, muss ein Art "Grenzbeschreibung" (Boundary) angegeben sein. Diese Blöcke können durchaus ineinander geschachtelt sein.

Jeder Block fängt mit einer Leerzeilen an, dann folgt das "Boundary" mit zwei Minuszeichen vorweg und der Inhaltszeichenbeschreibung (Content-Type und evtl. Content-Transfer-Encoding). Und dann folgt wieder eine Leerzeile und dann erst der Text.
Der Abschluß wird wieder mit einem Boundary beschrieben - mit zwei Minus-Zeichen am Anfang und zwei am Ende.

Beispiel:

(E-Mailheader)
Content-Type: multipart/alternative; boundary="kssrkwg4rjsfjg3rkksngsg"

(1. Block der E-Mailnachricht: Textteil)
--kssrkwg4rjsfjg3rkksngsg
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

Dies ist ein Text.

(2. Block der E-Mailnachricht: Textteil in HTML-Format)
--kssrkwg4rjsfjg3rkksngsg
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<body>
Dies ist ein Text.
</body>
</html>

(3. Block der E-Mailnachricht: Bild)
--kssrkwg4rjsfjg3rkksngsg
Content-Type: image/png; name="image001.png"

ygg83IIACIAACCgIASilgkwUwgQBEAABEJARASiljMDDLQiAAAiAgIIQgFIqyEQhTBAAARAAARkR
gFLKCDzcggAIgAAIKAgBKKWCTBTCBAEQAAEQkBEBKKWMwMMtCIAACICAghCAUirIRCFMEAABEAAB
GRGAUsoIPNyCAAiAAAgoCAEopYJMFMIEARAAARCQEQEopYzAwy0IgAAIgICCEIBSKshEIUwQAAEQ
usw.

(Ende der Blöcke)
--kssrkwg4rjsfjg3rkksngsg--

(Das Beispiel ist sehr verkürzt - und muss ohne die kursiv geschriebene Zeilen gelesen werden)

Hinweis:
Da jeder Block eine eigene Codierung haben kann, kann es bei nachträglichem Einfügen von Inhalten zu unterschiedlichen Darstellungen führen.

E-Mailversand

Beim E-Mailversand wird von dem E-Mailclient die E-Mail in den drei obigen Bereichen an den ersten E-Mailserver übertragen. Hier werden alle E-Mailadressen und nur diese (!) - ohne einen Textteil - in den sogenannten Envelope übertragen. Also in den Envelope-From die absendende E-Mailadresse, und in den Envelope-Rcp die E-Mailadressen von To, CC und BCC - ohne weiteren Unterschied. Hierbei wird keine Zeile in dem E-Mailheader für das BCC erzeugt.

Der jeweils empfangene MTA teilt i.d.R. den E-Mailtransfer auf die verschiedenen empfangenen E-Maildomains auf. Geht also beispielsweise eine E-Mail an @gmx.de, @gmx.de und @web.de so werden die zwei E-Mails an GMX zusammen an GMX gesendet und eine identische Kopie an Web.de.

Kommt die E-Mail dann beim Postfachserver an (MDA) so wirft dieser den Envelope weg und ordnet die E-Mail dem jeweiligen Postfach zu.

Hinweise

Beim Versenden einer E-Mail an eine E-Mailadresse mittels BCC-Felds, so wird die E-Mail wie an alle anderen Adressen gesendet, aber natürlich steht in der E-Mail selbst (genauer weder im Header- noch im Inhaltsbereich) die BCC-Adresse nicht. Diese steht lediglich im Envelope.

[zurück zum Index]

^