Die Anwendung von E-Mail wird oft als so genannte
Killer-Applikation des Internet bezeichnet. Eine Applikation, welche einem Medium zum Durchbruch verhalf (analog SMS bei Mobiltelefonen). Die Verwendung von E-Mail hat den unbestrittenen Vorteil, dass Versand und Empfang lose gekoppelt sind - sie verlaufen asynchron. Dies ist anders als bei einem Telefongespräch - dort müssen beide Gesprächspartner synchron anwesend sein.
Das
TCP/IP-Protokoll ist die Grundlage für den Datenverkehr im Internet. Auf diesen Protokoll-Stapel (TCP/IP) werden nach dem
OSI-Referenzmodell verschiedene weitere Dienste aufgesetzt. Ein Internet-Client der E-Mails vom Server abruft, verwendet das POP3-oder IMAP4-Protokoll. Beim Mail-Versand hingegen wird die SMTP-Vereinbarung verwendet.
Das Postfach beim Internet-Provider wird vom Client über das POP3 oder IMAP4-Protokoll geleert bzw. abgefragt. Bei POP3 werden die Nachrichten auf dem Server gelöscht und in lokale Datenverzeichnisse verschoben, dies entspricht auch dem Wunsch oder der Anforderung der Mail-Provider. Bei IMAP werden die E-Mails in Ordner-Strukturen auf dem Server gespeichert und sind so weltweit verfügbar.
IMAP wird von allen Providern mittlerweile unterstützt, POP3 ist aber noch immer der am meisten verwendete Standard und ein ziemlich «unsicheres Protokoll» ohne Verschlüsselung mit klarer Übergabe von Benutzername und Passwort.
Senden mit dem SMTP-Protokoll
Die Abkürzung SMTP steht für: Simple Mail Transfer Protokoll. Das SMTP-Protokoll ist wirklich ziemlich simpel - aber dennoch zuverlässig. Ein Aspekt, der der E-Mail-Anwendung zum Durchbruch verhalf.
- Transport von E-Mails vom Client zum Mail-Server (MTA)
- Transport von Server zu Server (MTA zu MTA = Message Transfer Agent)
- Lieferung von SMTP-Mail erfolgt in einem Punkt-zu-Punkt-Verfahren, das heisst vom Sender direkt zum Empfänger
- Identifikation erfolgt nur mit einer gültigen Internet-Domain-Bezeichnung als Benutzer, ohne Passwort
Eine SMTP-Kommunikation zwischen E-Mail-Client und E-Mail-Server kann auch mittels
Telnet durchgeführt werden. Die Befehle der Client-Seite werden in diesem Terminal-Logbuch rot dargestellt.:
Telnet>open mail.server1.ch 25
220 mail.server1.ch ESMTP Sendmail 8.9.3/8.9.3; Tue, 2 Jan 200# 18:03:27 +0100
HELO mail.server2.ch
250 mail.server1.ch Hello pop.surfer.ch [194.230.230.247], pleased to meet you
HELP
214-This is Sendmail version #.#.#
214-Topics:
214- HELO EHLO MAIL RCPT DATA
214- RSET NOOP QUIT HELP VRFY
214- EXPN VERB ETRN DSN
214-For more info use "HELP <topic>".
214-To report bugs in the implementation send email to
214- sendmail-bugs@sendmail.org.
214-For local information send email to Postmaster at your site.
214 End of HELP info
MAIL FROM:hans.muster@server1.ch
250 hans.muster@server2.ch... Sender ok
RCPT TO:peter.meier@server2.ch
550 peter.meier@server1.ch... Recipient ok
DATA
354 Enter mail, end With "." on a line by itself
Hallo Peter
Dies ist ein Mail in einer Telnet-Sitzung, zur Demonstration von SMTP mit Sendmail.
SMTP ist einfach aber dennoch zuverlaessig.
.
250 Mail accepted
QUIT
221 mail.server1.ch delivering mail
Erklärungen zum Terminal-Logbuch
- Verbindung zum Server mail.server1.ch wird über das Telnet-Kommando OPEN zum SMTP-Anschluss von TCP/IP (Port 25) aufgebaut
- Identifikation des sendenden Servers erfolgt über das Kommando HELO, dabei genügt ein gültiger Server- und Domain-Namen, es ist kein Passwort erforderlich
- HELP zeigt die Software und die verwendete Version des SMTP-Dienstes an, in diesem Fall handelt es sich um Sendmail auf einer LINUX-Maschine. HELP ist ein Kommando für den interaktiven Modus von SMTP und wird in der automatischen Client/Server-Kommunikation nicht verwendet.
- MAIL FROM: definiert den Sender in der neuen Nachricht
- RCPT TO: definiert den Empfänger in der neuen Nachricht
- DATA öffnet die Daten-Eingabe, dies ist der normale Mail-Text, der auch in einem Mail-Client erfasst wird, die Dateneingabe des Mails wird mit einem «.» (Punkt) auf einer einzelnen Linie abgeschlossen
- QUIT beendet die SMTP-Sitzung und versendet zugleich das Mail
Weitere SMTP-Befehle
- VRFY überprüft einen Benutzernamen
- EXPN erweitert eine Mailingliste
- RSET bricht eine Nachricht ab
- SEND, SOML, SAML und TURN sind Befehle welche im RFC 821 für SMTP (IEEE) optional definiert aber nicht allzu häufig implementiert sind
SMTP ist ein sehr einfaches Protokoll, wie der Name «Simple» es schon ausdrückt. Dennoch bietet es einen wichtigen Vorteil, im Vergleich zu anderen Mail-Protokollen wie UUCP oder X.400. SMTP liefert die E-Mails direkt vom Sender zum Empfänger aus.
Bei UUCP und X.400 wird ein sogenanntes «Store and Forward-Verfahren» angewendet. Dabei werden die Mails von einem Server zum nächsten weitergeleitet (von «Hop» zu «Hop»).
Empfangen mit dem POP3-Protokoll
Abkürzung für: Post-Office-Protocol / Version 3
- Aktueller Standard für E-Mail-Download mit PC, PDA, Workstations
- Nachrichten werden nach dem Download - normalerweise - auf dem Server gelöscht
- Übermittlung des Benutzernamen und Passwortes im Klartext
Eine POP3-Kommunikation zwischen E-Mail-Client und E-Mail-Server kann auch mittels
Telnet durchgeführt werden. Die Befehle der Client-Seite werden in diesem Terminal-Logbuch rot dargestellt.:
Telnet>open mail.server.ch 110
+OK X1 NT-POP3 Server mail.server.ch (IMail #.##)
USER hans.muster@server.ch
+OK send your password
PASS passwort
+OK welcome
STAT
+OK 1 1861
LIST 1
+OK 1 1861
TOP 1
+OK 1861 octets
Received: from mailout00.sul.t-online.com [194.25.134.16] by mail.server.ch with ESMTP (SMTPD32-6.05) id A78821420114; Tue, 02 Jan 200# 15:36:56 +0100
Received: from fwd04.sul.t-online.com by mailout00.sul.t-online.com with smtp id 14DSYa-0007QY-05; Tue, 02 Jan 200# 15:36:56 +0100
Received: from t-online.de (0763315331-0001@[217.3.188.133]) by fwd04.sul.t-online.com with esmtp id 14DSYM-0q72f2C; Tue, 2 Jan 200# 15:36:42 +0100
Message-ID: <3A51E71A.A856DA94@t-online.de>
Date: Tue, 02 Jan 200# 15:35:06 +0100
From: thomas.muster@t-online.de
X-Mailer: Mozilla #.## [de]C-DT (Win2000; I)
MIME-Version: 1.0
To: hans.muster@server.ch
Subject: Betreff des E-Mails
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Sender: 0763315331-0001@t-dialin.net
X-RCPT-TO: <hans.muster@server.ch>
X-UIDL: 268925966
Status: U
QUIT
+OK POP3 Server saying Good-Bye
Erklärungen zum Terminal-Logbuch
- Verbindung zum Server mail.server.ch wird über das Telnet-Kommando OPEN zum POP3-Anschluss von TCP/IP (Port 110) aufgebaut
- Anmeldung des Benutzers erfolgt über die Kommandos USER und PASS
- STAT liefert den Status bzw. die Anzahl der ungelesenen Nachrichten zurück
- LIST 1 gibt die Grösse der Nachricht 1 oder die Gesamtgrösse aller Nachrichten aus (im Beispiel ist nur 1 Nachricht in der Mailbox)
- TOP 1 gibt den Kopf (Header) der E-Mail aus, optional können n Zeilen der E-Mail angezeigt werden («TOP 1 5» für 5 Zeilen der Nachricht 1)
- Verbindung zum Server wird mit QUIT abgebrochen
Weitere POP3-Befehle
- RETR 1 empfängt die Nachricht 1
- DELE 1 löscht die Nachricht 1
- RSET hebt die Löschung aller Nachrichten auf und setzt den Nachrichtenzeiger auf 1 zurück
- LAST gibt die Nummer der zuletzt im Zugriff befindlichen Nachricht aus
- NOOP keine Aktion (No Operation), hält aber die Verbindung zum Server aufrecht
Weitere Details zu POP3 sind in der RFC 1725 des
IEEE dokumentiert.
E-Mail-Header in den E-Mail-Clients
Die POP3-Kommunikation wird von E-Mail-Clients wie Outlook, Netscape, Eudora usw. automatisch im Hintergrund abgewickelt, die Nachrichten werden auf einem übersichtlichen GUI präsentiert.
Die Anzeige des Headers wird in den Mail-Clients meistens unterdrückt oder in einem speziellen Dialogfeld angezeigt. Bei Microsoft Outlook können die «Internetkopfzeilen» einer E-Mail über Ansicht / Optionen angezeigt werden:
Microsoft Outlook stellt die SMTP-Protokoll-Informationen aus dem E-Mail-Transfer in diesem Dialogfenster im Abschnitt Internetkopfzeilen dar.
Empfangen mit dem IMAP-4-Protokoll
Abkürzung für: Internet Mail Access Protocol / Version 4. Im Vergleich zum einfachen Protokoll POP3 bietet IMAP4 folgende Vorteile:
- Zugriff auf Postfach mit Verschlüsselung / sicherer Verbindung möglich.
- Maildaten können auf Mail-Server in Ordnern organisiert werden
- eignet sich besonders für PDA, NCs (Network Computer, intelligente Terminals) ohne lokale Speichermedien oder für mobile Einsatzzwecke auf Notebooks
E-Mail-Anhänge senden und empfangen über das MIME-Protokoll
Das MIME-Protokoll ist sowohl eine Erweiterung von SMTP, POP3, IMAP wie auch von
HTTP. MIME bedeutet «Multipurpose Internet Mail Extension», es handelt sich bei MIME um einen Standard der Mail-Protokolle (insbesondere SMTP, RFC 821) so erweitert, dass Daten, beispielsweise Video-, Audio- und Binärdateien über Internet-E-Mail übertragen werden können ohne zuvor in das 7-Bit
ASCII-Format umgewandelt werden zu müssen.
Das MIME-Protokoll strukturiert die E-Mails in eine Hauptnachricht, einen sogenannten Body und die jeweiligen Anhänge in den verschiedenen MIME-Typen. Dies sogenannte
«MIME-Typen» beschreiben den Inhalt oder die Inhalte einer E-Mail. Eine MIME-kompatible Anwendung (Mail-Client wie Outlook) die eine Datei sendet, ordnet der Datei einen MIME-Typ zu. Die Empfängeranwendung, die ebenfalls MIME-kompatibel sein muss, bezieht sich auf eine standardisierte Liste mit Dokumenten, die in MIME-Typen und -Untertypen strukturiert ist, um den Inhalt der Datei übersetzen zu können.
Ein MIME-Typ ist beispielsweise «text», der wiederum eine bestimmte Anzahl von Untertypen enthält, etwa «plain» und «html». Der MIME-Typ «
text/html» verweist auf eine Datei, deren Text im
HTML-Format verfasst ist. Weitere gebräuchliche MIME-Typen sind:
- application: Binärdaten im 8-Bit-Format, der Typ application kennt weitere Sub-Typen wie application/msword für E-Mail-Anhänge von Microsoft Word oder application/postscript für PostScript-Dateien
- image: Grafiken als Einzelbilder, Sub-Typen sind image/jpeg oder image/gif usw.
- video: Video-Stream-Daten, Sub-Typen sind video/mpeg, video/quicktime usw.
- audio: Audio-Daten, Sub-Typen sind audio/basic und audio/wav
- multipart: Mail-Anhänge von verschiedenen Typen, Sub-Typ ist beispielsweise mixed
- message: Mail-Anhang der aus einer Mail besteht
Zustätzliche MIME-Befehle: ESMTP
Der MIME-Standard besteht aus zusätzlichen Befehlen und entsprechenden Client-Antworten die beispielsweise zu SMTP hinzugefügt werden. Beispielswiese ist ein neuer Hello-Befehl definiert («EHLO»), die gültige Antwort auf EHLO (Extended HELO, siehe SMTP-Beispiel) ist eine Liste der unterstützten SMTP-Erweiterungen. Die erweiterten SMTP-Dienste werden auch als ESMTP (Extended SMTP) bezeichnet. In den Beispielen zur POP3 bzw. SMTP-Kommunikation taucht das Kürzel ESMTP entsprechend auf.
Ein Mail-Dienst der ESMTP unterstützt stellt meistens folgende Zusatzdienste:
- 8BITMIME: Unterstützung für 8-Bit-Binärdaten
- CHUNKING: Auch E-Mails die in mehrere Teile zerlegt sind werden verarbeitet
- SIZE: Anfrage der maximal erlaubten Nachrichtengrösse, erspart die Übermittlung und den plötzlichen Abbruch bei grossen E-Mails (Beispiel MIME-Type «video/quicktime»)
- ENHANCEDSTATUSCODE: Verbesserte und differenziertere Fehlermeldungen werden ausgegeben
- DSN: Angaben über E-Mail-Auslieferung werden unterstützt (Lesebestätigungen des Empfängers usw.)
MIME und ESMTP sind aus der heutigen E-Mail-Kommunikation nicht mehr wegzudenken, da die Anwender von E-Mail sich über die Art und Weise des versandten Anhanges einer Mails keine Gedanken machen. Hauptsache das Mail ist auf dem Weg und kommt auf der Gegenseite an, der Rest ist Aufgabe der Server, Dienste und Protokolle.