Ausgangspunkt ist mein Homeserver, eine DELL Optiplex 3060 Micro Workstation, auf der Ubuntu Server 22.04 läuft und die allerlei Dienste zur Verfügung stellt. Zur besseren Überwachung möchte ich, dass ich in bestimmten Fällen eine Email gesendet bekomme. Zum Beispiel wenn relevante Systemupdates anstehen.
Dazu habe ich mich weitestgehend an diesen Guide gehalten. Das System braucht für das über das eigene System hinausgehende Versenden vom Emails einen Mail Transfer Agent, davon gibt es viele, Postfix ist ein weit verbreiteter und wird hier verwendet.
sudo apt install mailutils
Damit wird Postfix mit einigen Utilities installiert. Es folgt ein Installationsdialog. Als „General type of configuration“ habe ich „Satellite System“ ausgewählt.
Im nächsten Schritt brauche ich ein Emailkonto, über das die Emails versendet werden. Ich betreibe einen eigenen Webserver, dort habe ich mir also ein einfaches Konto eingerichtet. Der SMTP Server läuft unter Port 587.
Nun braucht Postfix die Zugangsdaten zu dem Konto. Der Dateiname ist mein frei wählbar:
sudo nano /etc/postfix/sasl_passwd_root
Der Inhalt der Datei sollte so aussehen:
[mein.mailserver.de]:587 username@mailserver.de:passwort
Danach:
sudo postmap /etc/postfix/sasl_passwd_root
Jetzt müssen die Kontodaten noch abgesichert werden:
sudo chown root. /etc/postfix/sasl_passwd_root
sudo chmod 600 /etc/postfix/sasl_passwd_root
sudo chown root. /etc/postfix/sasl_passwd_root.db
sudo chmod 600 /etc/postfix/sasl_passwd_root.db
In der Datei /etc/aliases können Aliase erzeugt werden, so dass zum Beispiel Mails für den User marcel an root weitergeleitet werden.
sudo nano /etc/aliases
postmaster: root
marcel: root
sudo newaliases
In der Datei /etc/postfix/virtual wird definiert, an welches externe Ziel die Emails für root gesendet werden sollen.
sudo nano /etc/postfix/virtual
root dein@mailpostfach.de
sudo postman /etc/postfix/virtual
Hier weiche ich jetzt von dem Guide ab. Denn moderne Emailserver prüfen auch, ob das FROM: im Emailheader mit der Adresse der genutzten Emailkontos übereinstimmt. Das dürfte in den meisten Fällen in diesem Szenario nicht der Fall sondern etwas wie root@localhost sein. Der Emailserver wird die Mail mit dieser oder einer ähnlichen Meldung ablehnen:
sudo less /var/log/mail.log
Dec 21 17:24:21 ubuntu-base postfix/smtp[1730902]: 0A7A91241E72: to=<email@domain>, orig_to=<root>, relay=mailserver.tld[public-ip]:587, delay=0.46, delays=0.04/0.06/0.31/0.06, dsn=5.7.1, status=bounced (host mailserver.tld[public-ip] said: 553 5.7.1 <root@localhost>: Sender address rejected: not owned by user emailkonto (in reply to RCPT TO command))
Die Lösung. Wir brauchen die Datei /etc/postfix/generic, in der der lokale Nutzername zur verwendeten öffentlichen Emailadresse gemapt wird. Die Emailadresse entspricht dem Emailkonto, dass weiter oben angelegt wurde.
sudo nano /etc/postfix/generic
root@localhost username@mailserver.de
@localhost username@mailserver.de
sudo postmap /etc/postfix/generic
Nach diesen Vorarbeiten muss die Konfiguration zusammengetragen werden. Dazu wird die Datei /etc/postfix/main.cf bearbeitet. Etwaig fehlende Parameter können einfach nachgetragen werden.
sudo nano /etc/postfix/main.cf
relayhost = [mein.mailserver.de]:587
smtp_tls_security_level = may
smtp_sasl_auth_enable = yes
smtp_sasl_security_options =
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd_root
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
virtual_alias_maps = hash:/etc/postfix/virtual
smtp_generic_maps = hash:/etc/postfix/generic
Da Postfix auf dem Homeserver keine Emails empfangen soll werden die Optionen des folgenden Parameters entfernt:
mydestination =
Mein Homeserver hat intern leider kein ipv6, deshalb habe ich folgende Option setzen müssen:
inet_protocols = ipv4
Als Abschluss muss der Postfix-Dienst neugestartet werden.
sudo systemctl restart postfix
Eine Test-Email lässt sich folgendermaßen kreieren.
echo "dies ist eine testnachricht" | mail -s "test" meine@adresse.de
Photo by Gabriel Heinzer on Unsplash
1 thought on “Wie ich meinen Homeserver Emails senden lasse”
Comments are closed.