Genauere Definition und Erklärung von SMTP bei Wikipedia
RFCs
Default Ports
- 25 TCP
- 587 TCP (Submission Port)
Status-Codes
Das SMTP-Protokoll hält zum Status der Kommunikation zwischen Mailserver und Mailclient folgende Error-Codes bereit:
- 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.
Quelle: Wikipedia
Standard Kommandos
Kommando | Beschreibung |
---|---|
HELO host | Eigenen Servernamen senden und Dialog beginnen |
EHLO host | Extended HELO; Zeigt Serverfunktionen/möglichkeiten an |
MAIL FROM:xxx | Absender E-Mail Adresse |
RCPT TO:xxx | Empfänger E-Mail Adresse |
DATA | Beginn der Übermittlung von Daten Das Ende der Übermittlung wird mit <CR><LF>.<CR><LF> signalisiert. |
QUIT | Dialog beenden |
Der SMTP Dialog
Um einen SMTP Server zu Testen kann man das Tool telnet verwenden:
# telnet mailserver.example.com 25
Wichtig ist die Portangabe 25. Protokoll ist TCP. Neuere Server verwenden unteranderem auch den Submission Port 587 TCP für Clienteinlieferungen.
>> sysadmin@vmserver01:~$ telnet mailserver.example.com 25 << Trying 10.23.45.10... << Connected to mailserver.example.com. << Escape character is '^]'. << 220 mailserver.example.com ESMTP Postfix (Debian/GNU) >> helo pc0815.example.com << 250 mailserver.example.com >> mail from:absender@example.org << 250 2.1.0 Ok >> rcpt to:empfaenger@example.org << 250 2.1.5 Ok >> data << 354 End data with <CR><LF>.<CR><LF> >> Dies ist eine Testmail. >> . << 250 2.0.0 Ok: queued as 708D72C80BE >> quit << 221 2.0.0 Bye << Connection closed by foreign host. << sysadmin@vmserver01:~$
SMTP Serverfunktionen abfragen mit EHLO (Extended HELO)
Der Dialog funktioniert genau so wie der andere es wird nur statt helo ehlo verwendet.
>> sysadmin@vmserver01:~$ telnet mailserver.example.com 25 << Trying 10.23.45.10... << Connected to mailserver.example.com. << Escape character is '^]'. << 220 mailserver.example.com ESMTP Postfix (Debian/GNU) >> ehlo pc0815.example.org << 250-mailserver.example.com << 250-PIPELINING << 250-SIZE 10240000 << 250-VRFY << 250-ETRN << 250-STARTTLS << 250-ENHANCEDSTATUSCODES << 250-8BITMIME << 250 DSN >> quit << 221 2.0.0 Bye << Connection closed by foreign host. << sysadmin@vmserver01:~$