Konfiguration von msmtp zum Verschicken von E-Mails

Letzte Aktualisierung am 29.03.2024, 21:03:29 Uhr

Auslöser für diesen Beitrag ist die Überwachung von einem Software RAID1 unter Linux Ubuntu. Bei meinen Recherchen habe ich festgestellt, dass es z.B. für PRTG von Paessler nach wie vor keinen nativen Sensor für die Überwachung eine Software RAIDs gibt. So dass bei Problemen oder sogar Ausfall einer Festplatte eine Alarmierung erfolgt.

Für die Verwaltung des Software RAID wird heutzutage das Hilfsprogramm multiple disk administration (mdadm). Beim Einsatz von mdadm wird auf msmtp zurückgegriffen. Um dem Motto „weniger ist mehr“ treu zu bleiben, installiere ich keinen extra SMTP Server ala Postfix auf dem Server. Schließlich muss dieser konfiguriert und später auch regelmäßig gewartet werden. Sondern greife für den Versand auf ein existierendes E-Mail-Postfach zurück.

Nachstehend eine Referenz Konfiguration von mdadm und msmtp für die Nutzung eines externen E-Mail-Postfaches zum Versand von E-Mail-Benachrichtigungen.

Installation von msmtp und dazugehörigen Tools.

apt install -y msmtp msmtp-mta mailutils

Prüfung der installierten Version von Sendmail.

msmtp --version

Initiale systemweite Konfiguration für msmtp erstellen.

cat << EOF > /etc/msmtprc
# Set default values for all following accounts.
defaults
auth            on
tls             on
tls_trust_file  /etc/ssl/certs/ca-certificates.crt
logfile         /var/log/msmtp
aliases         /etc/aliases

# gmx.de
account        testdw@gmx.de
host           mail.gmx.net
port           587
tls_starttls   on
from           testdw@gmx.de
user           testdw@gmx.de
password       Test1234

# KeyHelp
account         testdw@blog.wydler.eu
host            server03.daniel.wydler.eu
port            587
tls_starttls    on
from            testdw@blog.wydler.eu
user            testdw@blog.wydler.eu
password        Test1234


# Set a default account
account default: testdw@gmx.de

EOF

Hinweis: Bitte nicht vergessen meine Daten (E-Mail-Adresse, Benutzername, Passwort, Servername, etc.) durch eure Daten zu tauschen.

Erzeugen einer Logfile für msmtp.

touch /var/log/msmtp
chown msmtp:root /var/log/msmtp
chmod 660 /var/log/msmtp

Berechtigung auf die Konfiguration anpassen.

chmod 600 /etc/msmtprc

Konfiguration für Ubuntu 20.04/22.04/Debian 12

cat << \EOF > /etc/mail.rc
set sendmail="/usr/bin/msmtp -t"
EOF

Funktion von msmtp testen.

echo "E-Mail Text `date +"%c"`" | mail -s "E-Mail Betreff" emailadresse@domain.de

Sicherungskopie der originalen Konfigurationsdatei von mdadm erstellen.

cp /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.original

Folgende Anpassungen habe ich in der Datei /etc/mdadm/mdadm.conf manuell vorgenommen.

diff /etc/mdadm/mdadm.conf /etc/mdadm/mdadm.conf.original
18,21c18
< MAILADDR info@blog.wydler.eu
<
< #
< MAILFROM mdadm@blog.wydler.eu
---
> MAILADDR root

Abschließend darf natürlich wie immer ein Funktionstest nicht fehlen.

mdadm --monitor --test --oneshot /dev/md0

Hier der Beweis, dass die E-Mail zugestellt wurde.

Viel Spaß beim Ausprobieren. 🙂

Abonnieren
Benachrichtige mich bei
8 Comments
neueste
älteste
Inline Feedbacks
View all comments
achim
23.07.2024 10:56

Hallo, das gleich bei mir mit debian 11.
Beim absenden an meine E-Mail-Adresse ‚echo „Inhalt der E-Mail“ | mail -s „Betreff“ test@mail.de‚ bleibt er einfach hängen, im logfile steht nichts, der ist nach wie vor leer.
Und auf der E-Mail Adresse kommt nichts an.
Was muss in der /etc/aliases drin stehen?

achim
Reply to  achim
23.07.2024 11:14

Hat sich gelöst:
bei meinem Hoster muss im account expliziet gesetzt werden:
tls_starttls off
Danke trotzdem für Deine Anleitung.

Dennis
20.03.2024 15:09

Ich weiß zwar nicht warum, aber dein Howto funktioniert bei mir nicht.

Bei dem Punkt „echo „E-Mail Text date +"%c"“ | mail -s „E-Mail Betreff“ emailadresse@domain.de“ sagt mir mein eingetragener GMX Mail server das die Envelope Adresse root@test nicht bekannt sei. Zurecht.

Die from Adresse habe ich aber korrekt gesetzt. Sie wird nur komplett ignoriert. Ubuntu Server LTS.

Wenn ich es explizit aufrufe funktioniert es aber:

echo "hello there username." | msmtp -a default username@domain.com
Dennis
Reply to  Daniel
25.03.2024 10:34

20.04.06

Seb
25.10.2023 11:05

Hinweis zum Hinweis:
Ich hoffe mal, Sie haben ihr produktives Passwort nicht im Blog veröffentlicht 😉

Und danke für den Eintrag.