Simple Mail Transfer Protocol

Aus Mikiwiki
Zur Navigation springen Zur Suche springen

Das Simple Mail Transfer Protocol / SMTP (RFC 821, RFC 2821) bestimmt (ergänzend zu POP3) den Aufbau der E-Mails und die Routinen zum Versenden von E-Mails. Beispielsweise wird geregelt, wie Steuermeldungen aussehen oder wie zwei Mail-Systeme untereinander Informationen austauschen. Das grösste Problem von SMTP sind fehlende Authentifizierungsmechanismen, die jedem Internetnutzer erlauben, den SMTP-Server zum Versand von E-Mails zu verwenden. SMTP-Server vertrauen dabei standardmässig jedem, Benutzer können also jede beliebige Absenderadresse angeben! Der SMTP-Server lauscht standardmässig auf Port 25.

Ein SMTP-Server erledigt folgende Aufgaben:

  • Akzeptieren einer ankommenden Nachricht.
  • Überprüfen der Adressaten der Nachricht.
  • Speichern der Nachricht zur Abholung, wenn es sich um lokale Empfänger handelt.
  • Weiterleiten der Nachricht, wenn es entfernte Empfänger sind.

SMTP-Server ähneln daher von der Funktionalität her Paketroutern, werden aber ausschliesslich für E-Mail verwendet. Oft passiert eine Nachricht mehrere SMTP-Gateways, bevor sie ihr endgültiges Ziel erreicht. Der Weg einer E-Mail ist in ihrem Header nachvollziehbar.

Bekannte SMTP-Clients sind:

Das Extended Simple Mail Transfer Protocol / ESMTP (RFC 1869) erschien 1995 und beinhaltet neben verschiedenen Verschlüsselungsmethoden wie SSL und TLS auch SMTP-Auth zur Benutzerautentisierung.

Befehle

Mit einem SMTP-Server kann über eine telnet-Sitzung an Port 25 mit folgenden Befehlen direkt kommuniziert werden.

$ telnet xxx.xxx.xxx.xxx 25
Befehl Beschreibung
DATA Folgende Zeilen sind der Textkörper der E-Mail. Das Ende der Nachricht wird durch Senden einer Zeile mit einem einzelnen Punkt angezeigt.
EXPN Expandieren des Benutzernamens zu einer vollständigen E-Mail-Adresse.
HELO / EHLO Starten einer SMTP-Sitzung und Austausch von Daten zur Identifizierung unter Angabe des Rechnernamens des Absenders. Ein Mailcleint sendet an dieser Stelle normalerweise den eigenen Rechnernamen.
HELP Hilfe zu SMTP.
MAIL FROM: Starten einer E-Mail-Transaktion.
QUIT Beenden einer E-Mail-Transaktion.
RCPT TO: Angabe eines Empfängers.
RESET Abbruch der aktuellen Operation.
SEND Starten der Zustellung.
VERIFY / VRFY Überprüfen der Absenderadresse.

Eine SMTP-Sitzung zwischen Mail Delivery Agent (Mailserver) und Mail User Agent (Mailclient) könnte wie folgt aussehen.

Mailserver Mailclient
(wartet auf Verbindungen auf TCP-Port 25) (öffnet Verbindung)
220 mail.xxxxx.xx SMTP Foo Mailserver HELO client.xxxxx.xx
250 Hello client.xxxxx.xx, nice to meet you MAIL FROM: sender@xxxxx.xx
250 Sender OK RCPT TO: recipient@xxxxx.xx
250 Recipient OK DATA
354 End data with <CR><LF>.<CR><LF> From: sender@xxxxx.xx
To: recipient@xxxxx.xx
Subject: Testmail
Date: Sun, 18 May 2008 12:45:32 +0200

Testmail
.
250 Message accepted for delivery QUIT
221 See you later (schliesst Verbindung)

Das Testen verschiedener Kombinationen von Absender- und Empfängeradressen gibt einen recht guten Aufschluss übder die Konfiguration des SMTP-Servers. Ein nicht authentifizierter Benutzer sollte niemals Nachrichten an Empfänger fremder Domains schreiben dürfen, da der Server sonst im Open Relay-Modus arbeitet.

Weblinks

Vorlage:Weblinks1