Ablauf einer SMTP-Session

Voraussetzung für den Test ist, dass Sie über einen Telnet-Zugang über Port 25 verfügen.

Zunächst benötigen Sie die Liste der verantwortlichen Mailserver für die Domain des Empfängers. Dazu kann man auf UNIX-Ebene Kommandos wie "host", "nslookup" und "dig" benutzen, auf Windows-Ebene sollte überall nslookup zur Verfügung stehen. Man kann aber auch öffentliche Dienste dafür nutzen wie z.B. unter http://www.zoneedit.com/lookup.html.

Die Syntax bei "nslookup" wäre:
nslookup -querytype=MX domainname
also z.B.
nslookup -querytype=MX t-online.de

Bei Zoneedit ist äquivalent die Domain beim Hostnamen einzusetzen und als Record-Type der "Mail Server (MX)" auszuwählen.
Für das Beispiel t-online.de wird dann aktuell etwas in dieser Form zurückgemeldet:
t-online.de mail is handled by 10 mx00.t-online.de.
t-online.de mail is handled by 10 mx01.t-online.de.
t-online.de mail is handled by 10 mx02.t-online.de.
t-online.de mail is handled by 10 mx03.t-online.de.

Je nach der Verteilung der MX-Prioritäten sollte man sich zum Test den MX mit dem niedrigsten Wert hernehmen, im o.g. Beispiel sollte es, sofern bei den Empfängerservern alles richtig konfiguriert ist, egal sein, welchen man hernimmt.

Damit zum eigentlichen Telnet:
Je nach benutztem Telnet unterscheidet sich der Verbindungsaufbau, grundsätzlich sollte etwas funktionieren wie:
telnet hostname 25
Im Ergebnis sollte eine Begrüßung des Mailservers erscheinen. Nach der Begrüßung meldet man sich selber mit dem helo- oder dem ehlo-Kommando, je nachdem, was die Gegenseite versteht. Normalerweise sollten alle aktuellen Systeme das ehlo-Kommando verstehen:

ehlo meinhost.meinedomain.de

Beim ehlo wird vom Server eine Liste der Eigenschaften zurückgemeldet:

250-mailin04.aul.t-online.de ready.
250-SIZE 33554432
250-8BITMIME
250-ENHANCEDSTATUSCODES
250 HELP

Nach dem ehlo erwartet der Server die Angabe der Absenderadresse, diese wird übergeben mit:

mail from: <absenderemailadresse>

Normalerweise sollte der Server darauf mit einem Code 250 antworten, etwa in dieser Form:

250 2.1.0 Sender accepted.

Jetzt kann die Liste der Empfänger abgearbeitet werden. Jeder Empfänger wird einzeln übergeben mit:

rcpt to: <empfaengeremailadresse>

Wird die Email für den Empfänger akzeptiert, dann sollte wieder ein Code 250 zurückgemeldet werden:

250 2.1.5 Recipient accepted.

Wird die Email für einen Empfänger nicht akzeptiert, kommen entweder Code 4xx (temporäre Fehler, Aufforderung zum späteren Neuversuch) oder Code 5xx (permanenter Fehler, nicht wieder versuchen) zurück:

550-5.1.1 user unknown
550 5.1.1 Unknown recipient.

Der Dialog kann zwischendurch mit "rset" zurückgesetzt werden, in diesem Fall erwartet der Server wieder eine Absendeadresse, das ehlo/helo muss aber nicht neu gesendet werden.
Mit "quit" lässt sich die Verbindung abbauen.

Ein Beispiel für einen kompletten SMTP-Dialog (ohne Datenübergabe):
> telnet mx00.t-online.de 25
Trying 194.25.134.8...
Connected to mx00.t-online.de.
Escape character is '^]'.
220-mailin04.aul.t-online.de T-Online ESMTP receiver fssmtpd2025 ready.
220 T-Online ESMTP receiver ready.
ehlo meinhost.meinedomain.de
250-mailin04.aul.t-online.de ready.
250-SIZE 33554432
250-8BITMIME
250-ENHANCEDSTATUSCODES
250 HELP
mail from: <meineemailadress@meinedomain.de>
250 2.1.0 Sender accepted.
rcpt to: <empfaenger1@t-online.de>
550-5.1.1 user unknown
550 5.1.1 Unknown recipient.
rcpt to: <empfaenger2@t-online.de>
250 2.1.5 Recipient accepted.
quit
221-2.0.0 mailin04.aul.t-online.de closing.
221 2.0.0 Closing.
Connection closed by foreign host.



Zurück