Mit diesem Test (im Beispiel ein Postfix-Mailserver) kann ein Benutzer über einen Telnet-Dialog am Mailserver authentifiziert werden. In diesem Beispiel muss der Server "PLAIN" als Authentifizierungs-Mechanismus unterstützen.

Noch ein Hinweis an alle Windows-User: Das Programm Telnet muss ab Windows Vista erst über "Programme und Funktionen" aktiviert werden!

Dann kanns auch schon losgehen. Zuerst brauchen wir einen gültigen Benutzer und das zugehörige Passwort. Dann generieren wir daraus einen base64-kodierten String:

perl -MMIME::Base64 -e 'print encode_base64("max\@mustermann.de\000max\@mustermann.de\000Passwort");'

Hinweis: Wie hier zu sehen, muss der Benutzername zweimal angegeben werden. Die Backslashes vor dem @-Zeichen braucht man nur, wenn der Benutzer über einen kompletten Realm vefügt.

Nun erhalten wir den kodierten String:

bWF4QG11c3Rlcm1hbm4uZGUAbWF4QG11c3Rlcm1hbm4uZGUAUGFzc3dvcnQ=

Diesen kopieren wir uns in die Zwischenablage.

Nun können wir uns per Telnet mit dem Server verbinden:

telnet mail.example.com 25
220 mail.example.com ESMTP Postfix
EHLO client.example.com
250-mail.example.com
250-PIPELINING
250-SIZE 20480000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

AUTH PLAIN bWF4QG11c3Rlcm1hbm4uZGUAbWF4QG11c3Rlcm1hbm4uZGUAUGFzc3dvcnQ=
235 2.7.0 Authentication successful
QUIT
221 2.0.0 Bye

Die Authentifizierung war also erfolgreich.

Falls es nicht gleich klappt, kann man sich den base64-kodierten String auch dekodieren und kontrollieren, ob alles stimmt:

perl -MMIME::Base64 -e 'print decode_base64("bWF4QG11c3Rlcm1hbm4uZGUAbWF4QG11c3Rlcm1hbm4uZGUAUGFzc3dvcnQ=")'</p> <p class="meldung">Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!@mustermann.dePasswort

E-Mail versenden

Hier beschreibe ich noch wie es möglich ist, nach der erfolgreichen Authentifizierung auch gleich noch eine Test E-Mail zu verschicken (also nach außerhalb an eine fremde Domain):

telnet mail.example.com 25
220 mail.example.com ESMTP Postfix
EHLO client.example.com
250-mail.example.com
250-PIPELINING
250-SIZE 20480000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-AUTH=PLAIN LOGIN DIGEST-MD5 CRAM-MD5
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN

AUTH PLAIN bWF4QG11c3Rlcm1hbm4uZGUAbWF4QG11c3Rlcm1hbm4uZGUAUGFzc3dvcnQ=
235 2.7.0 Authentication successful
MAIL FROM:"Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!"
250 2.1.0 Ok
RCPT TO:"Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!"
250 2.1.5 Ok
DATA
354 End data with <CR><LF>.<CR><LF>
Subject: Test
bla bla bla
.
250 2.0.0 Ok: queued as 129FB3A48032
QUIT
221 2.0.0 Bye

Hinweis: Der Punkt am Ende der Nachricht ist wichtig, denn damit wird die Nachricht beendet und verschickt.