Einfache eMails verschicken

Am besten legt man alle für den eMail-Versand benötigten Informationen in den Variablen:

MESSAGE="Test Message 1. Zeile\n2. Zeile"
USER="newsletter"
BETREFF="Test Betreff"
EMAIL_ADRESSE="empfaenger@domain.tld"

Um diese zu kontrollieren:

echo "${MESSAGE}"
echo "${USER}"
echo "${BETREFF}"
echo "${EMAIL_ADRESSE}"

Anschließend wird die Meldung abgeschickt:

echo "${MESSAGE}" | mailx -r "${USER}" -s "${BETREFF}" "${EMAIL_ADRESSE}"

:!: Die Variable $USER findet dann Verwendung, wenn der eMail-Versand nur für bestimmte User freigeschaltet ist. Dann wird die eMail durch mailx im Namen dieses Users versendet.

Falls "mailx" Konfiguration "~/.mailrc" voraussetzt (z.B. wegen SMTP‑Relay), gibt es trotzdem Möglichkeit, die Konfiguration-Parameter direkt auf der Kommandozeile mit Parameter "-S" zu übergeben, sodass man keine "~/.mailrc" braucht.

Einfaches Beispiel:

echo "Hier ist der eMail-Text." | mailx -S smtp=mrelay.domain.tld:25 -S smtp-auth=none -S from=dein.name@deine-domain.tld -s "Betreff bla-bla-bla" empfaenger@ziel-domain.tld

Weitere Variante - Text aus Datei:

mailx -S smtp=mrelay.domain.tld:25 -S smtp-auth=none -S from=dein.name@deine-domain.tld -s "Betreff bla-bla-bla" empfaenger@ziel-domain.tld < /pfad/zur/datei.txt

Weitere Variante - in einem Skript mit Variablen:

TO="empfaenger@ziel-domain.tld"
FROM="dein.name@deine-domain.tld"
SUBJECT="Testmail"
BODY="Hallo,\ndies ist eine Test-Mail."
 
printf "%b\n" "${BODY}" | mailx -S smtp=mrelay.domain.tld:25 -S smtp-auth=none -S from="${FROM}" -s "${SUBJECT}" "${TO}"

Damit bleibt alles in der Bash, ohne Konfigurationsdatei.


Stand: 20.09.2026

EOF