Postfix fuer ausgehende Mails einrichten
Viele Anwendungen müssen Mails verschicken: Passwort-Reset, Benachrichtigungen, Cronjob-Outputs.
Postfix als lokaler Mail-Relay ist dafür die sauberste Lösung ohne einen externen SMTP-Dienst einzubinden.
Installation
sudo apt-get install postfix
Beim Setup-Dialog "Internet Site" auswählen und den Hostnamen eingeben.
Konfiguration für ausgehende Mails
sudo nano /etc/postfix/main.cf
Wichtige Einstellungen.
myhostname = server.meinedomain.de mydomain = meinedomain.de myorigin = $mydomain inet_interfaces = loopback-only mydestination = relayhost =
inet_interfaces = loopback-only sorgt dafür dass Postfix nur lokale Verbindungen annimmt und nicht von außen erreichbar ist.
sudo systemctl restart postfix
Test
echo "Testmail vom Server" | mail -s "Test" mail@beispiel.de
Falls mail nicht vorhanden ist.
sudo apt-get install mailutils
Warum Mails im Spam landen
Ohne SPF, DKIM und einen sauber konfigurierten Reverse-DNS-Eintrag landen Mails von eigenen Servern oft direkt im Spam.
Für transaktionale Mails die ankommen müssen ist ein dedizierter SMTP-Dienst wie Mailgun, Postmark oder SES die zuverlässigere Wahl.
Postfix als lokaler Relay reicht aber für Benachrichtigungen, Monitoring-Mails und Cronjob-Ausgaben bei denen es nicht schlimm ist wenn mal eine verloren geht.
Relay über externen SMTP
Wer einen SMTP-Account hat kann Postfix als Relay konfigurieren.
relayhost = [smtp.mailgun.org]:587 smtp_sasl_auth_enable = yes smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_sasl_security_options = noanonymous smtp_tls_security_level = encrypt
echo "[smtp.mailgun.org]:587 benutzer@domain:passwort" | sudo tee /etc/postfix/sasl_passwd sudo postmap /etc/postfix/sasl_passwd sudo systemctl restart postfix