Linux bash: E-Mail mit sendmail verschicken

Sendmail E-Mail auf der Linux Konsole erzeugen

Manchmal ist es von Nöten Systemnachrichten mittels Skript zu erzeugen und an sendmail zu übergeben. Viele vergessen jedoch die notwendigen E-Mail Header mit in die E-Mail einzubauen. Dies ist in erster Linie kein Problem, solange die E-Mail nur intern weitergereicht wird. Problematisch wird es wenn man an Externe Anbieter verschickt. Die meisten behandeln E-Mails ohne richtigen Header als Spam oder lehnen (bouncen) sie gleich ab.

Was alles in den E-Mail Header rein sollte steht z.B. auf der Wikipedia Seite.

Um das Problem zu lösen bringt “sendmail” die Option “-t ” mit. Welche bedeutet, alle E-Mail Header Infos aus einer Datei zu holen. Die Datei könnte folgendermaßen aussehen.

Sendmail E-Mail Header


MIME-Version: 1.0
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: 8bit
From: admin@domain.de
Reply-To: antwort-adresse@domain.de
Subject: Text Test =?UTF-8?Q?f=C3=BCr?= Umlaute
To: admin@domain.de

Hallo hier ist ein Text Test "ü ä ö" bzw ß!
Wird der Inhalt der E-Mail bzw. der Betreff korrekt angezeigt,
dann wurde die E-Mail richtig erzeugt.

Die Leerzeile zwischen Header und Text dient als Trenner, sodass
sendmail automatisch erkennt was ist Header und was ist Text.

Sendmail E-Mail Versand

Den gesamten Inhalt speichert man z.B. als “nachricht” ab und schickt diese mit folgenden Befehl ab.

cat nachricht | sendmail -t -f admin@domain.de

E-Mail Envelope From und Header From

Der Envelope From ist der Absender welcher mit der Option “-f” erzeugt wird. Dieser Absender ist der eigentlich wichtige beim E-Mail Versand. Zum Envelope From werden auch etwaige bounces geschickt. Wird die Option weggelassen, erzeugt sendmail als Absender user@server-hostname.de. Dies kann zufolge haben dass bei Unzustellbarkeit der E-Mail die bounces im Nichts versinken, wenn der Absender unbekannt ist.
Der Header From wird bei einem E-Mail Client als Absender angezeigt. Kann hier komplett vom Envelope From abweichen.

E-Mail Reply-To und To

Unter “Reply-To” kann man eine Antwort E-Mail Adresse angeben. Wenn man auf antworten klickt, wird automatisch dieser Empfänger ausgewählt.
Bei “To” gibt man den eigentlichen Empfänger der E-Mail an.

Subject/Betreff Kodierung

Damit Umlaute und bestimmte Sonderzeichen im E-Mail Subject/Betreff auf dem E-Mail Client auch richtig angezeigt werden, muss hier eine Kodierung her.

Eingeleitet wird die Kodierung mit dem Befehl:

=?UTF-8?Q?

Und endet mit:

?=

Das “Q” zwischen den Fragezeichen bedeutet die Art der Kodierung der Zeichen. In dem Fall Quoted-Printable.

Ein “B” würde für base64 stehen. Der komplette String sehe dann so aus:

Subject: Text Test =?UTF-8?B?ZsO8cgo=?= Umlaute

Um das Wort “für” in base64 zu kodieren benutzt man den Linux Befehl:

echo für | openssl base64 -e

Check Also

OpenVPN im DualStack Betrieb

Wie man OpenVPN im DualStack IPv4/IPv6 parallel betreibt Mit der OpenVPN Version 2.4 und höher ...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Lars Pilawski hat 4,73 von 5 Sternen 972 Bewertungen auf ProvenExpert.com