E-Mail

Eine E-Mail im Browser oder E-Mail Programm aufzurufen ist inzwischen alltäglich.
Doch bevor wir sie so schön und deutlich sehen wird sie verarbeitet und anschließend dargestellt.

Eine E-Mail ist ein ASCII-Text, also ein Text mit einfachen Zeichen, d.h. es werden z.B. keine Umlaute (ä,ü,ö) unterstützt. Unbekannte Zeichen werden in Base64 und MIME umformatiert und müssen dann anschließend zusätzlich interpretiert werden.

Ein HTML-Abschnitt kann die Mail ebenfalls beinhalten, dies muss allerdings beim Header-Abschnitt mitgeteilt werden. Hier sagt uns der Header-Abschnitt eines Mails (Ganz oben), wie es interpretiert werden soll:


MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/html; charset=„iso-8859-1“

Mit Content-Type: text/html; teil uns der Abschnitt mit, dass diese E-Mail in HTML geschrieben ist. Dieser Abschnitt befindet sich ganz am Ende.

Aufbau

Eine Mail besitzt einen Header und Body-Abschnitt. In der Header-Abschnitt befinden sich die wichtigsten Informationen, d.h. alle notwendigen Informationen, die dringend gebraucht werden. Der Body beinhaltet die Nachricht, darunter zählt auch die Signatur und Anhang.
Anhänge werden als MIME-Kodierung gesendet.
Anschließend wird die Mail mit einem . (Punkt) beendet.

Wichtige Server

Eine E-Mail arbeitet mit mehreren Servern, worin sich die Aufgaben teilen.
Dabei gibt es 3 Arten von Servern:

POP3: Ermöglicht dem User sich seine E-Mails zu laden.
Läuft für unverschlüsselte Verbindungen unter Port 110 und für verschlüsselte 995.

IMAP: IMAP ist eine Erweiterung von POP3 Server, es werden mehrere Funktionen unterstützt.
Läuft für unverschlüsselte Verbindungen unter Port 110 und für verschlüsselte 993

SMTP: Sendet eine E-Mail an den Adressat.
Läuft unter Port 578 (verschlüsselt und unverschlüsselt)

Es kann durchaus sein, dass ein Anbieter auch zusätzlich andere Ports unterstützt

Ablauf

Wenn wir auf „Senden“ drücken wird: Als erstes die Mail formatiert/verschlüsselt und an den SMTP-Server weitergegeben.
Der SMTP-Server sendet die Mail an den gewünschten Adressat.
Dieser Adressat kann die Mail nun über POP3/IMAP laden und lesen, natürlich wird sie wieder als Klartext(unverschlüsselt) dargestellt.

Beispiel

In diesem Beispiel wird eine unbearbeitete E-Mail dargestellt.
Geladen wurde diese Mail von pop3.freenet.de unter dem Port 110.

Return-path: <beispielt@beispiel.de>
Delivery-date: Fri, 11 May 2012 23:32:09 +0200
Received: from [195.4.92.12] (helo=2.mx.freenet.de)
	by mbox61.freenet.de with esmtpa (ID exim) (Exim 4.76 #6)
	id 1SSxRY-0002Xk-V6
	for beispielt@beispiel.de; Fri, 11 May 2012 23:32:08 +0200
Received: from dub0-omc1-s5.dub0.hotmail.com ([157.55.0.204]:58021)
	by 2.mx.freenet.de with esmtp (port 25) (Exim 4.76 #1)
	id 1SSxRY-0003K3-PB
	for beispielt@beispiel.de; Fri, 11 May 2012 23:32:08 +0200
Received: from DUB101-W56 ([157.55.0.237]) by dub0-omc1-s5.dub0.hotmail.com with Microsoft SMTPSVC(6.0.3790.4675);
	 Fri, 11 May 2012 14:32:08 -0700
Message-ID: <DUB101-W5624FA82D4C019113C7ACDF1170@phx.gbl>
Content-Type: multipart/alternative;
	boundary="_b747d685-42ed-4b4d-95b8-e5251ddc79ec_"
X-Originating-IP: [79.220.248.161]
From: Vorname Nachname <beispielt@beispiel.de>
To: <beispielt@beispiel.de>
Subject: Just a test!
Date: Fri, 11 May 2012 21:32:07 +0000
Importance: Normal
MIME-Version: 1.0
X-OriginalArrivalTime: 11 May 2012 21:32:08.0126 (UTC) FILETIME=[8475F5E0:01CD2FBD]
X-Warning: beispielt@beispiel.de is listed at postmaster.rfc-ignorant.org
X-purgate-ID: 149285::1336771928-000006F2-2DE5FEC6/0-0/0-14
Delivered-To: beispielt@beispiel.de
Envelope-to: beispielt@beispiel.de
Delivered-To: beispielt@beispiel.de
Status: RO

--_b747d685-42ed-4b4d-95b8-e5251ddc79ec_
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable


Hello and bai!
 		 	   		  =

--_b747d685-42ed-4b4d-95b8-e5251ddc79ec_
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

<html>
<head>
<style><!--
..hmmessage P
{
margin:0px=3B
padding:0px
}
body.hmmessage
{
font-size: 10pt=3B
font-family:Tahoma
}
--></style></head>
<body class=3D'hmmessage'><div dir=3D'ltr'>
Hello and bai!<br> 		 	   		  </div></body>
</html>=

--_b747d685-42ed-4b4d-95b8-e5251ddc79ec_--

.

Wir können gleich sehen, dass sich die wichtigsten Informationen wie der Sender, Empfänger, Thema etc. sich ganz oben befinden.
Und sie wird wie erwähnt mit einem Punkt beendet.