E-Mail-Versand mit cURL testen

Portrait von Finn Kumkar

veröffentlicht am 19.11.2021
geschrieben von Finn Kumkar

Wie man die Funktionalität eines E-Mail Servers ausschließlich mit cURL testet.

Wer kennt das nicht, da will man in einer Anwendung mal eben schnell einen E-Mail Versand via SMTP einrichten und nichts funktioniert.

Ein guter Ansatz zum Debuggen ist das Ausschlussverfahren. Also beispielsweise den E-Mail Versand ohne die Anwendung zu überprüfen.

Nur was soll man tun, wenn die Anwendung in einem Docker Container läuft der für den Produktiveinsatz hochoptimiert ist und über nahezu kein Tooling verfügt?

Enter cURL!

Meistens ist zumindest das Kommandozeilen Werkzeug curl verfügbar und das unterstützt das Versenden von E-Mails.

Dazu benötigt man lediglich eine email.txt im RFC 5322 Standard:

1
2
3
4
5
6
From: Finn Kumkar <kumkar@stadtwerk.org>
To: stadt.werk <info@stadtwerk.org>
Subject: Test email sent by curl
Content-Type: text/plain; charset="utf8"

Hello World!

Und das curl Kommando mit den Zugangsdaten für den E-Mail-Server:

1
2
3
4
5
curl --ssl-reqd smtp://your.emailserver.com \
     --mail-from kumkar@stadtwerk.org \
     --mail-rcpt info@stadtwerk.org \
     --user 'user:password' \
     --upload-file email.txt

Hat der E-Mail-Versand mit cURL aus dem Docker Container heraus technisch funktioniert, dann liegt das Problem vermutlich in der Anwendungsschicht.

Wenn nicht, dann kann man das Problem weiter eingrenzen, indem man den E-Mail-Versand mit cURL lokal durchführt. Sollte das erfolgreich sein, dann liegt der Fehler vermutlich in der Konfiguration des Netzwerkes in dem sich der Docker Container befindet.

Ein guter Einstieg in cURL bietet: https://everything.curl.dev