Simple Mail Transfer Protocol

Aus Mikiwiki
(Weitergeleitet von SMTP)
Wechseln zu: Navigation, Suche

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

Herausgeber Sprache Webseitentitel Anmerkungen
country DE.gif Wikipedia ger Simple Mail Transfer Protocolwbm Enzyklopädischer Artikel
country DE.gif Thomas Fahle ger SMTP via Telnetwbm
country CZ.gif Logix eng Command line SMTP clientwbm Ein Perl-Skript