Druckversion

Was ist SMTP?

SMTP ist ein textbasiertes Übertragungsprotokoll, welches zum Austausch elektronischer Post genutzt wird. SMTP wird auf der Anwendungsschicht des TCP/IP-Modells bzw. ISO-OSI-Schichtmodell verwendet. Das SMTP-Protokoll kann lediglich zum Versenden und Weiterleiten von E-Mails verwendet werden, da es sich um ein Push-Protokoll handelt. Zum Abholen von Nachrichten kommen andere, spezialisierte Protokolle wie POP3 oder IMAP zum Einsatz.

Verfahren

Möchte der Sender eine E-Mail versenden, nimmt sein E-Mailprogramm (Mail User Agent) die Verbindung mit dem SMTP-Server (Mail Submission Agent) auf. Von dort wird die E-Mail gegebenenfalls über weitere SMTP-Server (Mail Transfer Agents) an das Ziel übermittelt. Als SMTP-Client können hierbei sowohl das E-Mailprogramm, als auch der SMTP-Server angesehen werden. Der SMTP-Client sendet dem SMTP-Server einen Befehl und der SMTP-Server antwortet mit einem Status-Code. Eine Liste der Befehl und Codes wird im Verlauf des Artikels angegeben.

Ein weit verbreiteter SMTP Server ist Sendmail:

Sendmail SMTP Server

Die wichtigsten SMTP-Befehle

SMTP-Befehl

Beschreibung

HELO(Hello)

HELO startet die SMTP-Sitzung und identifiziert den Client am Server.

MAIL

MAIL leitet die Mailübertragung ein und liefert gleich die Absender-Adresse mit.

RCPT (Recipient)

RCPT gibt die Adresse eines oder mehrere Empfänger an. Dieses Kommando kann deshalb mehrmals ausgeführt werden.

DATA

Mit DATA wird die Übermittlung der eigentlichen E-Mail-Nachricht wird mit "CRLF.CRLF" gekennzeichnet.

RSET (Reset)

Mit RSET wird die bereits eingeleitete Mailübertragung abgebrochen. Die Verbindung zwischen Client und Server bleibt bestehen.

VRTY (Verify)

Mit VRFY kann die Empfänger-Adresse überprüft werden.

EXPN (Expand)

Die meisten MTAs behandeln EXPN wie VRFY.

NOOP

NOOP bewirkt eine Antwort vom Server. Damit wird die Verbindungstrennung durch einen Timeout verhindert.

QUIT

QUIT beendet die Verbindung zum SMTP-Server. Der Server liefert eine letzte Antwort zurück.

Kategorisierung der Status-Codes

1XX

Mailserver hat die Anforderung akzeptiert, ist aber selbst noch nicht tätig geworden. Eine Bestätigungsmeldung ist erforderlich.

2XX

Mailserver hat die Anforderung erfolgreich ohne Fehler ausgeführt.

3XX

Mailserver hat die Anforderung verstanden, benötigt aber zur Verarbeitung weitere Informationen.

4XX

Mailserver hat einen temporären Fehler festgestellt. Wenn die Anforderung ohne jegliche Änderung wiederholt wird, kann die Verarbeitung möglicherweise abgeschlossen werden.

5XX

Mailserver hat einen fatalen Fehler festgestellt. Ihre Anforderung kann nicht verarbeitet werden.

Beispiel eines Protokolls

Server:

220 mail.example.com SMTP Foo Mailserver

 

Direkt nach dem Verbindungsaufbau über TCP meldet sich der SMTP-Server.

Client:

HELO mail.example.org

 

Der SMTP-Client meldet sich mit seinem Computernamen an.

Server:

250 Ok

 

Der Server bestätigt den Erhalt und erwartet die Fortführung der Verbindung.

Client:

MAIL FROM:

hans.muster@example.org

 

Der Client meldet die Absender-Adresse für den MTA.

Server:

250 Ok

 

Der Server bestätigt den Erhalt und erwartet die Fortführung der Verbindung.

Client:

RCPT TO:

foo@example.com

 

Der Client meldet die Empfänger-Adresse für den MTA.

Server:

250 Ok

 

Der Server bestätigt den Erhalt und erwartet die Fortführung der Verbindung.

Client:

DATA

 

Mit DATA leitet der Client das Senden der E-Mail ein.

Server:

354 End data with.

 

Der Server teilt dem Client mit, dass er die E-Mail mit einem Punkt (.) abgeschlossen haben will.

Client:

From:

hans.muster@example.org

 

1. E-Mail-Zeile

Client:

To: foo@example.com

 

2. E-Mail-Zeile

Client:

Subject: Testmail

 

3. E-Mail-Zeile


Der Client signalisiert mit zweimal Zeilenumbruch den eigentlichen Nachrichtentext der E-Mail in der 4. E-Mail-Zeile.

Client:

Testmail

 

5. E-Mail-Zeile

Client:

.

 

Die E-Mail wird mit dem Punkt (.) abgeschlossen.

Server:

250 Ok

 

Der Server quittiert den erfolgreichen Empfang der E-Mail.

Client:

QUIT

 

Der Client beendet die Verbindung zum Server.

Server:

221 Bye

 

Der Server sagt "Auf Wiedersehen".

Ein Screenshot dieser E-Mail ist dem Anhang beigefügt.

Vorteile

Bei SMTP handelt es sich um ein relativ einfaches Protokoll, da es textbasiert ist.

Die Überprüfung des SMTP-Servers kann problemlos durch die Verwendung eines Telnetprogramms erfolgen.

Nachteile

Für versendete E-Mails wird keine Versandbestätigung zurückgeliefert. Geht eine E-Mail verloren wird weder der Versender noch der Empfänger darüber informiert. Für den Fall, dass eine E-Mail nicht zustellbar ist wird zwar in den meisten Fällen eine Nachricht gesendet, diese enthält jedoch lediglich eine Fehlermeldung und den Header der E-Mail.

Es erfolgt beim einfachen SMTP keine Authentifizierung des Benutzers. Dies hatte eine große Menge SPAM zur Folge. Um diese Problem zu reduzieren wurde SMTP-Auth entwickelt. Dieses Verfahren ermöglicht dem Server eine Authentifizierung des Clients anhand seines Nutzernamens und Kennworts ermöglicht.

Da es sich bei diesem Protokoll um Plaintext handelt, ist es möglich den Inhalt auch als nicht berechtigter Empfänger zu lesen.


Quellen:

http://de.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol zugegriffen am 20.11.2007.

http://www.elektronik-kompendium.de/sites/net/0903081.htm zugegriffen am 20.11.2007.

http://www.tecchannel.de/kommunikation/e-mail/401772/index2.html zugegriffen am 19.12.2007.

AnhangGröße
Beispiel E-Mail.JPG73.19 KB