Linux Systemnachrichten und andere E-Mails mit msmtp versenden.
Auf einem größeren Serversystem betreibt man nicht selten einen Mail Transfer Agent (MTA) wie Postfix oder
Exim. Hat man zudem noch kleinere Serverdienste als VMs oder auf Raspberrys wird man an den Punkt kommen,
dass System- oder Statusmeldungen per E-Mail versendet werden sollen. Auch wenn nur aus einem Skript oder
von der Konsole E-Mails versendet werden sollen, muss dafür nicht ein großer Mail User Agent (MUA)
installiert und eingerichtet werden.
Soll nur das Versenden von E-Mails realisiert werden so bietet es
sich an, den SMTP-Client msmtp für diese Aufgabe zu verwenden.
Zuerst wird msmtp als root mit diesem Aufruf installiert.
# apt install msmtp msmtp-mta mailutils |
Das Paket mailutils ist nicht zwingend Notwendig aber hilfreich. So ist durch mailutils möglich, einfach mit mail eine E-Mail von der Konsole zu versenden.
Der SMTP-Client msmtp kann zwar benutzerspezifisch konfiguriert verwendet, ich gehe hier aber nur auf die systemweite Konfiguration für Statusmeldungen ein. Die systemweite Konfigurationsdatei befindet sich unter /etc/msmtprc bzw. muss nach der Installation dort zunächst erstellt werden.
Man öffnet bzw. erstellt die Konfigurationsdatei mit dem Editor seiner Wahl.
# mcedit /etc/msmtprc |
Eine einfache Konfiguration für einen (lokalen) Mailserver kann folgendermaßen aussehen und individuell Angepasst, direkt verwendet werden.
# System wide configuration file for msmtp.
account default
# Define SMTP-Server
host smtp.local.lan
from user@local.lan
port 587
tls on
tls_starttls on
auth on
user UserName
password geheimesPasswort
# Map local users to mail addresses
aliases /etc/aliases
Insbesondere wenn sich Zugangsdaten in der Konfigurationsdatei befinden, sollten die Zugriffsrechte auf die Datei beschränkt werden
# chmod 600 /etc/msmtprc |
Als nächstes öffnet bzw. erstellt man eine Datei /etc/aliases.
# mcedit /etc/aliases |
In dieser Datei wird mindestens für Root eine E-Mail Adresse hinterlegt. Außerdem sollte mit default eine Fallback-Adresse hinterlegt sein.
root: god@local.lan
default: god@local.lan
Auf die selbe Weise öffnet man auch die Datei /etc/mail.rc und fügt diese Zeile ein.
set sendmail="/usr/bin/msmtp -t"
Mit einem Aufruf wie diesem, kann zum Abschluss ein Test des E-Mail Versand durchgeführt werden.
# echo "Das ist eine Testnachricht." | mail -s
"Testachricht" god@local.lan |
Anstelle der vollständigen E-Mail Adresse kann auch nur ein in der Datei /etc/aliases eingetragener Username angegeben werden.