Direkt zum Inhalt | Direkt zur Navigation

Benutzerspezifische Werkzeuge

Nerd2Nerd

Webserver for the Nerds

Sie sind hier: Startseite / Projekte / N2N Infrastruktur / Mail Server / Emails per telnet versenden

Emails per telnet versenden

Wie man emails per telnet versendet

Über den Befehl telnet kann man ganz einfach Emails versenden. Das Beispiel hier geht davon aus, dass man keine Authentifizierung benötigt. In fett geschriebener Text sind Eingaben:

telnet mail.nerd2nerd.org 25
Trying 2001:4d88:1011::7...
Connected to mail.nerd2nerd.org.
Escape character is '^]'.
220 mail.nerd2nerd.org ESMTP Postfix
helo localhost
250 mail.nerd2nerd.org
mail from:<demouser@nerd2nerd.org>
250 2.1.0 Ok
rcpt to:<demouser@nerd2nerd.org>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
From: Demouser <demouser@nerd2nerd.org>
To: Demouser <demouser@nerd2nerd.org>
Date: Mon, 31 Mar 2014 16:31:38 +0200
Subject: Testmail

Test
.
250 2.0.0 Ok: queued as B97FA88769
quit
221 2.0.0 Bye
Connection closed by foreign host.

Das Datum aus der Date Zeile bekommt man unter GNU/Linux über:

date -R

Emails versenden mit Authentifizierung

Solch offene Mailserver sollte es eigentlich in freier Wildbahn nicht direkt geben. Ausnahmen sind z.B. Mailserver, die von Diensten auf Maschienen aus einem lokalen Subnetz Emails annehmen, ohne dass die Dienste sich erst authentifizieren müssen.

In der Regel benötigt man einen Benutzernamen und ein Passwort um Emails zu versenden.

Um herauszufinden welche Authentifizierungsmethoden der Mailsever erlaubt, fragt man den Mailserver am besten über ein "extended helo" (ehlo):

telnet mail.nerd2nerd.org 25
Trying 2001:4d88:1011::7...
Connected to mail.nerd2nerd.org.
Escape character is '^]'.
220 mail.nerd2nerd.org ESMTP Postfix
ehlo localhost
250-mail.nerd2nerd.org
250-PIPELINING
250-SIZE 20480000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
quit
221 2.0.0 Bye
Connection closed by foreign host.

Der Mailserver hier versteht nun die Methoden PLAIN und LOGIN. Wir verwenden hier nun die Methode PLAIN. Bei dieser Methode benötigt man einen Authentifizierungscode, der aus folgenden Daten besteht:

  • Authorisierungs-ID
  • Authentifikations-ID
  • Passwort

Meist ist die Authorisierungs-ID und die Authentifikations-ID dieselbe. Den Authentifizierungscode bekommt man nun über die Form:

Authorisierungs-ID\0Authentifikations-ID\Passwort

Dabei ist \0 das NULL-Byte. Der gesamte Text wird über Base64 encodiert. Letzters geht z.B. mit:

perl -MMIME::Base64 -e 'print encode_base64("demouser\@nerd2nerd.org\0demouser\@nerd2nerd.org\0demopasswort");'
ZGVtb3VzZXJAbmVyZDJuZXJkLm9yZwBkZW1vdXNlckBuZXJkMm5lcmQub3JnAGRlbW9wYXNzd29ydA==

Nun kann man mit dieser Zeichenfolge sich am Mailserver authentifizieren und Emails versenden:

telnet mail.nerd2nerd.org 25
Trying 2001:4d88:1011::7...
Connected to mail.nerd2nerd.org.
Escape character is '^]'.
220 mail.nerd2nerd.org ESMTP Postfix
ehlo localhost
250-mail.nerd2nerd.org
250-PIPELINING
250-SIZE 20480000
250-VRFY
250-ETRN
250-STARTTLS  
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
auth plain ZGVtb3VzZXJAbmVyZDJuZXJkLm9yZwBkZW1vdXNlckBuZXJkMm5lcmQub3JnAGRlbW9wYXNzd29ydA==
235 2.7.0 Authentication successful
mail from:<demouser@nerd2nerd.org>
250 2.1.0 Ok  
rcpt to:<demouser@nerd2nerd.org>
250 2.1.5 Ok  
data
354 End data with <CR><LF>.<CR><LF>
From: Demouser <demouser@nerd2nerd.org>
To: Demouser <demouser@nerd2nerd.org>
Date: Mon, 31 Mar 2014 16:31:38 +0200
Subject: Testmail

Test
.
250 2.0.0 Ok: queued as B97FA88769
quit
221 2.0.0 Bye 

Emails verschlüsselt versenden über TLS

Anstatt die Email mit den Zugangsdaten unverschlüsselt über die Leitung zu schicken, unterstützt der Mailserver auf Port 25 auch das TLS-Verfahren (STARTTLS). Anstatt nun telnet zu bemühen nimmt man einfach openssl:

openssl s_client -host mail.nerd2nerd.org -port 25 -starttls smtp

Emails verschlüsselt versenden über SSL

Manche Email-Server hören auch auf den SSMTP Port 465. Der entsprechende openssl Befehl lautet nun:

openssl s_client -host mail.nerd2nerd.org -port 465

Termine
SHA 2017 04.08.2017 - 08.08.2017 — Scoutinglandgoed in Zeewolde
MRMCD 2017 01.09.2017 - 03.09.2017 — Darmstadt
34C3 27.12.2017 - 30.12.2017 — Neue Messe Leipzig
Easterhegg 2018 30.03.2018 - 02.04.2018 — Würzburg
Kommende Termine…
« Juni 2017 »
Juni
MoDiMiDoFrSaSo
1234
567891011
12131415161718
19202122232425
2627282930