POP3, IMAP, SMTP per Telnet und Swaks
Nicht selten benötigt ein Admin Telnet oder Swaks um den Mailserver zu testen, ohne gleich einen E-Mail Client unnötig einzurichten. Eine Übersicht der wichtigsten Befehle möchte ich euch in diesem Tutorial aufführen.
Zuerst installieren wir die benötigten Tools telnet, openssl und swaks.
Debian
1 | apt-get install telnet openssl swaks |
CentOS
1 | yum install telnet openssl swaks |
POP3
Telnet Verbindung (User und Passwort im Klartext):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | # telnet example.org 110 Trying xxx.xxx.xx.xxx... Connected to example.org. Escape character is '^]'. +OK Dovecot ready. user example@example.org +OK pass meinpasswort +OK Logged in. list +OK 1 messages: 1 996 . quit +OK Logging out. Connection closed by foreign host. |
POP3 Befehle:
- „list“ – E-Mails inkl. Größe anzeigen
- „stat“ – Anzahl aller Nachrichten sowie Größe der Mailbox ausgeben
- „top 1 2“ – Den Header sowie die ersten zwei Zeilen von der ersten Nachricht ausgeben
- „retr 1“ – Die erste E-Mail komplett anzeigen
- „dele 1“ – Die erste E-Mail zum löschen markieren
- „rset“ – Die „löschen“ Markierung zurücksetzen
- „quit“ – Beenden der Session
IMAP
Telnet Verbindung:
1 | # telnet example.org 143 |
OpenSSL Verbindung:
1 | # openssl s_client -connect example.org:993 |
Login:
1 | . login example@example.org meinpasswort |
Alle Ordner anzeigen:
1 | . list "" "*" |
Logout:
1 | . logout |
SMTP
Telnet Verbindung:
1 | # telnet example.org 25 |
EHLO:
1 | EHLO exampleserver.org |
AUTH:
1 | AUTH LOGIN |
Der Mailserver gibt 334 VXNlcm5hbWU6
zurück, dies ist eine Base64 kodierte Zeichenfolge die nach dem Benutzernamen fragt. Den Benutzernamen generieren wir wie folgt:
1 2 | # perl -MMIME::Base64 -e 'print encode_base64("example@example.org");' ZXhhbXBsZS5vcmc== |
Jetzt fragt der Mailserver mit 334 UGFzc3dvcmQ6
nach dem Base64 kodierten Passwort. Das Passwort erstellen wir genauso:
1 2 | # perl -MMIME::Base64 -e 'print encode_base64("meinpasswort");' bWVpbnBhc3N3b3J0 |
E-Mail verschicken:
1 2 3 4 5 6 7 | mail from: <example@example.org>; rcpt to: <empfaenger@empfaenger.org>; data Subject: Testmail Dies ist eine Testmail . quit |
Swaks
Eine Testmail lässt sich einfacher mit dem Tool namens Swaks versenden.
Einfache Testmail versenden:
1 | # swaks -f example@example.org -t empfaenger@empfaenger.org |
Testmail über einen Server mit Authentifizierung versenden:
(-s Server | -f From | -t To | -au Login-Benutzer | -ap Login-Passwort)
1 | # swaks -s example.org -f example@example.org -t empfaenger@empfaenger.org -au example@example.org -ap meinpasswort |
Spam Testmail versenden:
1 | # swaks -f example@example.org -t empfaenger@empfaenger.org --header-X-Spamtest "XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X" |
0