Exkursion: SMTP und POP3 im Internet
Auch wenn die in diesem Kapitel behandelten Protokolle bereits in Computerverhältnissen sehr alt sind, so sind sie dennoch nach wie vor aktiv im Einsatz. Es ist also weiterhin möglich auf diese Weise eine Verbindung zu einem öffentlichen E-Mail Server aufzubauen und E-Mails zu versenden und empfangen.
Um einen Missbrauch, u.a. in Form von SPAM, zu verhindern wurden jedoch weitere Maßnahmen wie bessere Authentifizierungen in den Protokollen eingeführt. Zudem ist es nicht ratsam, eine unverschlüsselte Verbindung zum Versand und Empfang von E-Mails zu nutzen.
Möchtest du dennoch den Versand von E-Mails per SMTP im Internet testen, so solltest du z.B. openssl verwenden um eine verschlüsselte Verbindung mit dem SMTP Server aufzubauen. Zudem solltest du am besten eine „Wegwerf-E-Mail-Adresse“ verwenden, um Risiken zu minimieren.
Eine Verschlüsselte SMTP Verbindung kannst du mit installiertem openssl auf folgende Weise starten:
openssl s_client -connect <Server-Adresse>:<Server-Port> -starttls smtp
Die zur Verbindung nötigen Angaben für Server-Adresse sowie Server-Port findest du bei deinem E-Mail Anbieter. Meist hilft eine Suche nach „SMTP SSL“ sowie dem Anbieternamen.
Im Falle von web.de sieht der Befehl zum Aufbau einer Verschlüsselten SMTP Sitzung beispielsweise wie folgt aus:
openssl s_client -connect smtp.web.de:587 -starttls smtp
Hinweise zur Verwendung von SMTP im Internet
-
Der in diesem Kapitel eingeführte
HELO
Befehl wird in neueren Versionen des Standards alsEHLO
definiert. Einige SMTP Server akzeptieren nur noch diese Schreibweise. -
Üblicherweise muss eine Authentifizierung beim SMTP Server stattfinden. Nach dem ersten
EHLO
Befehl gibt der Server bei Bedarf die unterstützten Auth Methoden aus. Die einfachste Form der Authentifizierung ist die in RFC 4616 definiertePLAIN
Methode.
Der Befehl für PLAIN AUTH lautet dabei:AUTH PLAIN <code>
mit einem base64 codierten code aus Benutzername und Passwort.
Ein kurzes Python Skript welches den nötigen Code generiert findest du hier: auth_plain.py. -
Häufig auftretender Fehler: Nach Eingabe von
RCPT TO
erhalten wirRENEGOIATING
und einen Fehler seitens des Servers.
Lösung: Beginnt eine Nachricht in openssl mitR
löst dies eine Renegotiation aus.rcpt to
muss bei openssl daher in Kleinbuchstaben eingegeben werden.