Mails vom vServer verschicken
Warum die Mail-Ports gesperrt sind, wie du die Freischaltung beantragst, SPF, DKIM und DMARC, und der Weg über einen externen Mail-Dienst.
7 Min. Lesezeit
Auf dieser Seite
Kontaktformulare, Benachrichtigungen, ein eigener Mailserver: Irgendwann soll dein vServer Mails verschicken. Diese Anleitung erklärt, warum das nicht sofort geht und welche Wege es gibt.
Die Befehle gelten für Debian 12 und 13, Ubuntu 22.04 und 24.04, AlmaLinux 9 und Rocky Linux 9 und laufen als root.
Warum die Mail-Ports gesperrt sind
Ausgehend sind die Ports 25, 465 und 587 gesperrt. Das sind die Ports, über die Mails verschickt werden. Ein einziger gehackter oder falsch eingerichteter Server kann in kurzer Zeit tausende Spam-Mails versenden. Dann landen unsere Adressen auf Sperrlisten, und Mails aller Kunden kommen nicht mehr an. Die Sperre schützt also auch deine eigenen Mails.
Die Sperre gilt nur für ausgehende Verbindungen auf diese drei Ports. Andere Ports wie 443 für HTTPS sind nicht betroffen.
Ob die Ports bei dir zu sind, prüfst du so:
timeout 5 bash -c '</dev/tcp/smtp.gmail.com/587' && echo offen || echo gesperrtWeg 1: Freischaltung beantragen
Für einen eigenen Mailserver oder wenn du direkt über 25, 465 oder 587 versenden musst.
Vorher
- Setz Reverse-DNS auf der IPv4 auf den Namen deines Mailservers, z. B.
mail.example.de, und leg dazu einen A-Eintrag an. Siehe IPv6 und Reverse-DNS. - Richte SPF, DKIM und DMARC ein (siehe unten). Ohne sie landen deine Mails im Spam oder werden abgelehnt.
Antrag stellen
- Öffne im Dashboard deinen vServer, Tab Netzwerk, Abschnitt Mail-Ports.
- Füll das Formular aus:
- Mailserver-Software, z. B. Postfix, mailcow oder Mailu.
- Hostname des Mailservers, z. B.
mail.example.de. Der sollte als Reverse-DNS auf der IPv4 stehen. - Wofür sind die Mails? Kurz dein Projekt und wer die Mails bekommt.
- Erwartete Menge, z. B. 200 Mails am Tag.
- Bestätige die Regeln: kein Spam, keine unerwünschte Werbung. Bei Missbrauch werden die Ports wieder gesperrt.
- Klick auf Antrag senden.
Aus dem Antrag wird ein Ticket. Im Abschnitt steht dann „Dein Antrag wird geprüft. Rückfragen kommen im Ticket.“ und daneben Zum Ticket. Wir prüfen jeden Antrag einzeln; eine feste Bearbeitungszeit gibt es nicht.
Wird der Antrag angenommen, steht dort „Die Mail-Ports sind für diesen Server offen.“ Mit Wieder sperren machst du sie selbst wieder zu, wenn du sie nicht mehr brauchst. Wurde er abgelehnt, steht das dort, oft mit einer Begründung, und du kannst einen neuen Antrag stellen.
Steht im Abschnitt „Dein Paket sperrt die Mail-Ports nicht.“, musst du nichts beantragen.
Spamlisten im Blick behalten
Unter Spamlisten im selben Tab siehst du, ob deine Adressen auf bekannten Sperrlisten stehen. Mit Jetzt prüfen fragst du sie neu ab. Steht eine Adresse auf einer Liste, kommen Mails von dort bei vielen Empfängern nicht an. Such dann die Ursache (gehacktes Formular, offenes Relay), bevor du weiter versendest.
Weg 2: Über einen externen Mail-Dienst senden
Für Formulare und Benachrichtigungen ist das oft der einfachere Weg. Ein Anbieter für Mailversand (ein SMTP-Relay) kümmert sich um Zustellbarkeit, Sperrlisten und DKIM; dein Server liefert die Mails nur bei ihm ab.
Wie das geht, steht in der Anleitung deines Anbieters. Viele Anwendungen (WordPress mit einem SMTP-Plugin, Nextcloud, Gitea) haben eigene SMTP-Einstellungen; dort trägst du Server, Port 2525 und die Zugangsdaten direkt ein und brauchst auf dem vServer nichts weiter.
Postfix als Weiterleitung an den Dienst
Sollen alle Programme auf dem Server über sendmail Mails verschicken können, richte Postfix als reine Weiterleitung ein. Statt smtp.anbieter.example nimmst du den Server deines Anbieters.
Debian und Ubuntu (bei der Frage nach der Art der Konfiguration Internet mit Smarthost wählen, oder Keine Konfiguration und alles mit den Befehlen unten setzen):
apt install -y postfix libsasl2-modulesAlmaLinux und Rocky Linux:
dnf install -y postfix cyrus-sasl-plain
systemctl enable --now postfixEinstellungen setzen:
postconf -e 'relayhost = [smtp.anbieter.example]:2525'
postconf -e 'smtp_sasl_auth_enable = yes'
postconf -e 'smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd'
postconf -e 'smtp_sasl_security_options = noanonymous'
postconf -e 'smtp_tls_security_level = encrypt'
postconf -e 'inet_interfaces = loopback-only'inet_interfaces = loopback-only sorgt dafür, dass Postfix nur Mails vom Server selbst annimmt und kein offenes Relay wird.
Zugangsdaten in /etc/postfix/sasl_passwd:
[smtp.anbieter.example]:2525 BENUTZER:PASSWORTchmod 600 /etc/postfix/sasl_passwd
postmap /etc/postfix/sasl_passwd
systemctl restart postfixPrüfen, ob es geklappt hat
Eine Testmail an dich selbst:
printf 'Subject: Test vom vServer\n\nEs klappt.\n' | sendmail du@example.deDann im Log nachsehen:
journalctl -u postfix -n 30 --no-pagerSteht dort status=sent, hat der Dienst die Mail angenommen. mailq zeigt Mails, die noch warten. Kommt die Mail im Spam an, fehlen meist SPF oder DKIM für die Absenderdomain.
SPF, DKIM und DMARC
Drei DNS-Einträge sagen Empfängern, dass Mails von deiner Domain echt sind. Wie du TXT-Einträge anlegst, steht in DNS-Einträge verwalten.
SPF listet, wer für deine Domain senden darf. Ein TXT-Eintrag auf der Domain selbst, z. B. für einen eigenen Mailserver:
v=spf1 ip4:203.0.113.5 ip6:2001:db8::5 -allNutzt du einen Mail-Dienst, nennt er dir den passenden Teil, meist ein include:…. Pro Domain gibt es nur einen SPF-Eintrag; mehrere Absender kommen in dieselbe Zeile.
DKIM unterschreibt jede Mail. Den Schlüssel erzeugt dein Mailserver (mailcow, Mailu und rspamd können das) oder der Mail-Dienst; du trägst den öffentlichen Teil als TXT-Eintrag unter einem Namen wie dkim._domainkey.example.de ein. Name und Wert bekommst du von dort.
DMARC sagt Empfängern, was sie mit Mails tun sollen, die SPF und DKIM nicht bestehen. TXT-Eintrag auf _dmarc.example.de. Zum Anfangen nur beobachten:
v=DMARC1; p=none; rua=mailto:dmarc@example.deLaufen die Berichte ein paar Wochen ohne Fehler, stell auf p=quarantine und später p=reject um.
Prüfen kannst du die Einträge mit:
dig TXT example.de +short
dig TXT _dmarc.example.de +short
dig TXT dkim._domainkey.example.de +shortHäufige Fehler
Connection timed outzu Port 25, 465 oder 587. Die Ports sind gesperrt. Freischaltung beantragen oder Port 2525 bzw. die HTTP-API des Dienstes nutzen.SASL authentication failed. Benutzer oder Passwort insasl_passwdfalsch,postmapvergessen, oder unter Debian fehltlibsasl2-modules(unter Alma/Rockycyrus-sasl-plain).- Mails landen im Spam. SPF oder DKIM fehlen, oder Reverse-DNS passt nicht zum Hostnamen. Viele Empfänger zeigen in der Kopfzeile der Mail, was durchgefallen ist (
Authentication-Results). - Empfänger lehnt ab mit „listed“ oder „blocked“. Die Adresse steht auf einer Sperrliste. Unter Spamlisten nachsehen.
- Plötzlich viele Mails in
mailq. Möglicherweise verschickt ein gehacktes Formular Spam. Postfix stoppen (systemctl stop postfix), Ursache suchen, die Warteschlange mitpostsuper -d ALLleeren.
Wie es weitergeht
- Reverse-DNS für den Mailserver setzen: IPv6 und Reverse-DNS.
- WordPress-Formulare über den Mail-Dienst: PHP und WordPress.
Kommst du nicht weiter, schreib uns ein Ticket.