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
CN4N 2017 29.04.2017 - 01.05.2017 — FabLab Würzburg
GPN 17 25.05.2017 - 28.05.2017 — Karlsruhe
Hack & Make 2017 23.06.2017 - 25.06.2017 — z-Bau Nürnberg, Frankenstraße 200, 90461 Nürnberg
SHA 2017 04.08.2017 - 08.08.2017 — Scoutinglandgoed in Zeewolde
Easterhegg 2018 30.03.2018 - 02.04.2018 — Würzburg
Kommende Termine…
« April 2017 »
April
MoDiMiDoFrSaSo
12
3456789
10111213141516
17181920212223
24252627282930