Simple Mail Transfer Protocol
Aus Mikiwiki
Inhaltsverzeichnis |
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 |
|---|---|---|---|
| ger | Enzyklopädischer Artikel | ||
| ger | |||
| eng | Ein Perl-Skript |
