Linux und Windows HelpDesk

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.

Die hier gezeigte Verwendung von Zugangsdaten im Klartext ist nur eine Möglichkeit und nicht zu Empfehlen. Auf der msmtp Homepage von Martin Lambers findet man die vollständige Dokumentation und weitere Beispiele für die Konfiguration.