Proxmox PVE – SMTP mit Authentifizierung für Notifications einrichten
Veröffentlicht am | 25 Kommentare |
Du möchtest deine Notifications deiner Proxmox Server mit einem Postfach deines Mailservers oder Mailprovider wie STRATO verschicken? Dann bist du hier genau richtig. Wir zeigen dir Schritt für Schritt, wie du Postfix so konfigurierst, dass die Notifications zukünftig über ein „richtiges“ Postfach versendet werden.

Diese Anleitung wurde unter Proxmox PVE 6.4-13 getestet. NICHT auf Proxmox PBS.
1. Schritt - Postfix (nach-)installieren & config anpassen
Falls Postfix auf deinem Server noch nicht installiert ist, kannst du das Paket mit folgendem Command nach installieren.
sudo apt install postfix -y
Als erstes müssen wir einige Änderungen an der Postfix main.cf Datei vornehmen. Öffne die Datei mit nano
sudo nano /etc/postfix/main.cf
und suche folgende Zeile.
relayhost =
Kommentiere diese mit einem # aus.
#relayhost =
Springe mit der Tastenkombination Strg + W und Strg + V ans Ende der Datei. Füge den folgenden Code Schnipsel ein.
Passe dann smtp.mailserver.de auf den Hostnamen deines SMTP Mailservers an.
Du kannst auch den Port des Servers angeben. Tausche dazu 587 durch den Port deines Mailservers aus.
relayhost = [smtp.mailserver.de]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_tls_CAfile = /etc/postfix/cacert.pem
smtp_use_tls = yes
Absenderadresse fest einstellen (optional)
Je nachdem kann es Sinn ergeben, die Absenderadresse fest einzustellen. Zum Beispiel, wenn der angegebene SMTP Account nur mit bestimmten Adressen senden darf.
Füge hierzu den folgenden Codeblock noch zusätzlich an das Ende der main.cf Datei von postfix ein.
sender_canonical_classes = envelope_sender, header_sender
sender_canonical_maps = regexp:/etc/postfix/sender_canonical_maps
smtp_header_checks = regexp:/etc/postfix/header_check
Schließe die Datei mit
Strg + X
y
Enter
Nun musst du noch folgende Dateien erstellen und anpassen.
Öffne / erstelle folgende Datei mit nano
nano /etc/postfix/sender_canonical_maps
und füge diesen Codeblock ein. Ändere von@adresse.de mit deiner sendenden Adresse ab.
/.+/ von@adresse.de
Öffne / erstelle nochmals folgende Datei mit nano
/etc/postfix/header_check
und füge diesen Codeblock ein. Ändere von@adresse.de mit deiner sendenden Adresse ab.
/From:.*/ REPLACE From: von@adresse.de
2. Schritt - SASL Authentifizierungsdatei erstellen
Um dich an deinem SMTP Server anmelden zu können, erstellen wir nun eine Datei mit den erforderlichen Authentifizierungsdaten an. Vorher müssen wir noch ein Paket installieren, mit dem wir ein gehashtes File erstellen können.
sudo apt install libsasl2-modules -y
Erstelle und editiere die Authentifizierungsdatei mit nano
sudo nano /etc/postfix/sasl_passwd
und füge folgende Zeile ein.
Tausche auch hier wieder smtp.mailserver.de durch den Hostname des SMTP Servers aus. Außerdem musst du benutzer durch den Benutzernamen auf dem Mailserver austauschen, so ebenfalls auch passwort durch das Passwort dieses Benutzers.
Hier kannst du auch den Port des Servers angeben. Tausche dazu 587 durch den Port deines Mailservers aus.
[smtp.mailserver.de]:587 benutzer:passwort
Erstelle nun mit dem folgenden Befehl eine gehashte Datenbank Datei.
sudo postmap /etc/postfix/sasl_passwd
Passe anschließend noch die Rechte an, damit nur root Zugriff auf diese Datei hat.
sudo chown root:root /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db
3. Schritt - für Postfix allgemeines snakeoil Zertifikat zuweisen
Da viele Mailserver nur mit TLS oder SSL verschlüsselte Mails empfangen können, müssen wir Postfix noch ein Zertifikat mitgeben, damit die Proxmox Mails auch von solchen Mailservern empfangen werden.
cat /etc/ssl/certs/ssl-cert-snakeoil.pem | sudo tee -a /etc/postfix/cacert.pem
4. Schritt - über die Proxmox GUI Absenderadresse festlegen & Postfix neustarten
Als letzten Schritt vor dem Testen der Einstellungen legen wir nun noch fest, mit welche Mailadresse Proxmox die Notifications zu Backups, etc. versenden soll.
Die kann einfach über die Proxmox GUI unter Datacenter -> Options -> Email from adress geändert werden.
Gebe hier die Mailadresse an, auf die der angegebene Benutzer im 2. Schritt auch Berechtigungen hat.
Um alle Änderungen an Postfix jetzt wirksam zu machen, musst du noch folgenden Befehl abschicken.
postfix reload
Letzter Schritt - Konfiguration testen
Nun testen wir noch, ob die Konfiguration richtig ist. Schicke dazu folgenden Command ab und passe von@adresse.de mit der Absenderadresse an. Der in Schritt 2 angegebene Benutzer muss Zugriff auf diese Adresse haben. an@adresse.de ist die Empfängeradresse.
echo "Proxmox SMTP Test" | mail -s "SMTP Test" an@adresse.de -r von@adresse.de
Fertig!
Zufrieden? Dann schreib gerne einen Kommentar.
25 Kommentare
Hallo,
prima Tutorial und bisher das einzige, welches auf Anhieb funktioniert.
Wie kommt es allerdings, dass ich an alle Adressen Mails versenden kann, nur nicht an die, von der ich sende?
Viele Grüße
Sehr geile Anleitung. Danke dafür. Funktionierte auf Anhieb, hier unter Proxmox 7.4.3 und mit Office 365-Konto
viele Grüße!
Erich
Hallo Erich,
vielen Dank für das positive Feedback!
dein HowToDoTech Team
Sehr geile Anleitung. Danke dafür. Funktionierte auf Anhieb, hier unter Proxmox 7.4.3
viele Grüße!
Erich
Habe das Ganze genau nach Anleitung mehrfach durch:
Feb 17 11:55:03 pve postfix/smtp[155888]: BB26680DD7: to=, relay=smtp.web.de[213.165.67.108]:587, delay=0.36, delays=0/0/0.33/0.03, dsn=5.0.0, status=bounced (host smtp.web.de[213.165.67.108] said: 530 Authentication required (in reply to MAIL FROM command))
könnte es an Sonderzeichen im Passwort liegen?
Hallo,
das sollte kein Problem sein. Ich habe es auch mit Sonderzeichen im Passwort konfiguriert und es hat funktioniert.
Vielleicht kannst du nochmal das credentials File anschauen, ob auch der user richtig gesetzt ist. Ansonsten fällt mir nur noch ein, dass postfix ggf. ältere Verschlüsselungsmethoden nutzt, die web.de nicht mag. Siehe hier: https://debianforum.de/forum/viewtopic.php?t=183344
Viele Grüße
ok, ich habs hinbekommen:
[smtp.mailserver.de] muss ohne die [] angegeben werden 😉
Hat prima funktioniert, danke!
Hallo Nico,
vielen Dank für das positive Feedback!
dein HowToDoTech Team
so geil – vielen Dank!
Danke, wirklich toll! Hat bei mir direkt beim ersten Mal alles super funktioniert!
Hallo Calvin,
vielen Dank für dein Feedback!
Viele Grüße
Johann aus dem HowToDoTech Team
Hallo,
ich hab das ganze nun gefixt. Hier hat der Spamfilter (DNS-Blackhole-Listen) gegriffen. Nun habe ich aber ein weiteres Problem.
an ein auf dem Serverbefindliches Postfach kann ich schreiben. Aber nehme ich Beispielsweise eine google Adresse erhalte ich folgenden Fehler: 554 5.7.1 Relay access denied (in reply to RCPT TO command)
Habt Ihr hier noch einen kleinen Tip.
Hallo tobasium,
dieser Fehler könnte ggf. bedeuten, dass das Postfach auf dem Server nicht Berechtigt ist zu senden.
Wenn du dich mit dem Postfach, das du zum senden nutzt in Outlook oder einem anderen Mail Client anmeldest, kannst du dann an eine Google Adresse senden?
Viele Grüße
dein HowToDoTech Team
Hallo, Danke für die Anleitung. Ich habe hier leider noch so ein minimales Problem:
Service unavailable; Client host [89.245.244.164] blocked using zen.spamhaus.org; https://www.spamhaus.org/query/ip/89.245.244.164 (in reply to RCPT TO command)
Kann ich hier etwas dagegen machen?
Gruß Tobi
Hi,
danke für den Guide.
Ich nutze PVE 7.09 und habe alles wie beschrieben eingerichtet, natürlich mit meinen eigenen Werten an entsprechender Stelle.
Wenn ich abschließend per Befehl
echo „Proxmox SMTP Test“ | mail -s „SMTP Test“ an@adresse.de -r von@adresse.de
testen möchte, passiert einfach nichts. Weder in der CLI, noch kommt eine e-Mail an.
Hast du hier vielleicht noch einen Tipp?
Danke und VG
Stefan
Hallo Stefan,
erst einmal sorry für die späte antwort.
Kannst du mal bitte die letzten 10-20 Zeilen aus dem Postfix Log, nachdem du den
echo „Proxmox SMTP Test“ | mail -s „SMTP Test“ an@adresse.de -r von@adresse.de
Command ausgeführt hast, schicken?Das Log kannst du dir mit folgendem Befehl anzeigen lassen:
tail -20 /var/log/mail.log
Viele Grüße
dein howtodotech.de Team
Das war die Lösung. mit den beiden Zeilen ging es. Danke.
Feb 15 22:50:36 iss-server3 postfix/master[945]: reload — version 3.5.6, configuration /etc/postfix
Feb 15 22:56:04 iss-server3 postfix/pickup[56270]: 087D75C0DCB: uid=1000 from=
Feb 15 22:56:04 iss-server3 postfix/cleanup[57041]: 087D75C0DCB: message-id=
Feb 15 22:56:04 iss-server3 postfix/qmgr[56269]: 087D75C0DCB: from=, size=433, nrcpt=1 (queue active)
Feb 15 22:56:04 iss-server3 postfix/smtp[57045]: SMTPS wrappermode (TCP port 465) requires setting „smtp_tls_wrappermode = yes“, and „smtp_tls_security_level = encrypt“ (or stronger)
Feb 15 23:01:04 iss-server3 postfix/smtp[57045]: 087D75C0DCB: to=, relay=mail.[…][[…]]:465, delay=300, delays=0.1/0.01/300/0, dsn=4.4.2, status=deferred (conversation with mail.[…][[…]] timed out while receiving the initial server greetin
g)
Die letzt Zeile zeigt die Fehlermeldung. Leider kann ich damit nicht sehr viel anfangen.
Admin Kommentar: Domains und IPs in diesem Kommentar wurden nachträglich mit […] ersetzt.
Hallo Dirk,
kannst du mal versuchen, die zwei folgenden Zeilen noch am Ende der main.cf Datei (/etc/postfix/main.cf) einzufügen:
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
Dann den Postfix Server mit
postfix reload
neu starten und nochmal versuchen, die Test-Mail zu senden.Die Log-Nachricht weist darauf hin, dass der Mail Server eine höhere Verschlüsselung verlangt.
Viele Grüße
dein howtodotech.de Team
Ich hatte das gleich Problem und mit der Ergänzung werden jetzt Mails versendet. Danke
Danke für die Anleitung. Leider funktioniert dies bei mir nicht unmittelbar. Im Log könnte ich keinen unmittelbaren Fehler finde.
Hallo Dirk,
ist die Test-Mail (bei Letzter Schritt – Konfiguration testen) durchgekommen?
Viele Grüße
dein howtodotech.de Team
Vielen Dank für die gute Anleitung und den Kommentaren darunter. Ich habe es mit Strato zunächst nicht hin bekommen. Auf der eigenen Webseite steht Port 465
und es wollte überhaupt nicht. Auch mit den Hinweisen
smtp_tls_wrappermode = yes
smtp_tls_security_level = encrypt
bin ich nicht weiter gekommen.
Also einfach mal mit Port 587 getestet.
Siehe da läuft super.
Hallo,
danke für den Hinweis und das Feedback (:
Viele Grüße