Skip to content

Alle ausgehenden Mails über externen SMTP (Smarthost) senden: ISPConfig + Postfix (STARTTLS/587)

Last updated on 14. Oktober 2025

Sämtliche ausgehenden Server-Mails (Cron, Systemmeldungen, Website etc.) werden über einen externen SMTP-Dienst (Smarthost) versendet. Wir starten in ISPConfig, ergänzen die nötigen Postfix-Einstellungen per CLI und sorgen dafür, dass Absenderadressen korrekt umgesetzt werden (z. B. root@…ABSENDER@IHRE-DOMAIN.TLD).

In den Beispielen unten bitte ABSENDER@IHRE-DOMAIN.TLD und APP_PASSWORT durch eigene Werte ersetzen.
Der Abschnitt „Provider-Profile“ zeigt die Hostnamen/Eigenheiten für Yandex, Google und Outlook/Microsoft 365.


0) Vorbereitung

  • SMTP-Konto, das als Absender genutzt werden soll: ABSENDER@IHRE-DOMAIN.TLD
  • Dazu ein App-Passwort (empfohlen, v. a. bei 2FA).

1) ISPConfig (UI) → Relayhost setzen

  1. System → Server Config → (Server auswählen) → Reiter „Mail“.
  2. Im Feld Relayhost eintragen: [SMTP_HOSTNAME]:587Save.
    Beispiele (Details siehe unten):
    • Yandex: [smtp.yandex.com]:587
    • Google: [smtp.gmail.com]:587
    • Outlook/M365: [smtp.office365.com]:587
    Eckige Klammern sind wichtig (kein MX-Lookup). Port 587 = STARTTLS (kein Wrapper-Modus).

2) Server (CLI) → SASL-Module installieren

sudo apt update
sudo apt install -y libsasl2-modules

3) Server (CLI) → Zugangsdaten für den Smarthost

hier solltest du ändern : ABSENDER@IHRE-DOMAIN.TLD:APP_PASSWORT(oder your mail Password)

sudo tee /etc/postfix/sasl_passwd >/dev/null <<'EOF'
[SMTP_HOSTNAME]:587  ABSENDER@IHRE-DOMAIN.TLD:APP_PASSWORT
EOF
sudo chmod 600 /etc/postfix/sasl_passwd
sudo postmap /etc/postfix/sasl_passwd

4) Server (CLI) → Postfix sicher für STARTTLS/SASL konfigurieren

sudo postconf -e "relayhost=[SMTP_HOSTNAME]:587"
sudo postconf -e "smtp_sasl_auth_enable=yes"
sudo postconf -e "smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd"
sudo postconf -e "smtp_sasl_security_options=noanonymous"
sudo postconf -e "smtp_tls_wrappermode=no"
sudo postconf -e "smtp_tls_security_level=encrypt"
sudo postconf -e "smtp_tls_CAfile=/etc/ssl/certs/ca-certificates.crt"
sudo postconf -e "smtp_address_preference=ipv4"

Hinweis: Für 465/SMTPS wäre smtp_tls_wrappermode=yes nötig; wir nutzen hier 587/STARTTLS.


5) Absenderadressen auf das echte Postfach mappen

Viele Provider akzeptieren nur existierende Absender. Systemkonten wie root@server… oder www-data@… daher auf ABSENDER@IHRE-DOMAIN.TLD umschreiben:

sudo tee /etc/postfix/generic >/dev/null <<'EOF'
root@server123.ihre-domain.tld ABSENDER@IHRE-DOMAIN.TLD
root@server123 ABSENDER@IHRE-DOMAIN.TLD
root@localhost ABSENDER@IHRE-DOMAIN.TLD
www-data@server123.ihre-domain.tld ABSENDER@IHRE-DOMAIN.TLD
www-data@server123 ABSENDER@IHRE-DOMAIN.TLD
www-data@localhost ABSENDER@IHRE-DOMAIN.TLD
@server123.ihre-domain.tld ABSENDER@IHRE-DOMAIN.TLD
EOF
sudo postmap /etc/postfix/generic
sudo postconf -e "smtp_generic_maps=hash:/etc/postfix/generic"

6) root-Alias weiterleiten (empfohlen)

echo "root: ABSENDER@IHRE-DOMAIN.TLD" | sudo tee -a /etc/aliases
sudo newaliases

7) (Optional) sender-dependent Relay deaktivieren

Zur Vereinfachung nur den globalen Relayhost nutzen:

sudo postconf -e "sender_dependent_relayhost_maps="

8) Postfix neu laden & Versand testen

sudo systemctl reload postfix
# Testmail
echo "Test" | mail -s "Relay-Test" ABSENDER@IHRE-DOMAIN.TLD
# Logs prüfen
tail -n 80 /var/log/mail.log

Erwartete Log-Meldungen:

  • relay=[SMTP_HOSTNAME]:587
  • SASL authentication succeeded
  • Trusted TLS connection established
  • status=sent

Typische Stolpersteine & schnelle Checks:

  • 553 5.7.1 Sender address rejected: user not found → Absender-Rewrite (Schritt 5) prüfen.
  • SASL … no mechanism available → libsasl2-modules fehlt oder /etc/postfix/sasl_passwd/postmap nicht korrekt.
  • IPv6-Pfad zickt? Testweise:
sudo postconf -e "inet_protocols=ipv4"
sudo systemctl reload postfix

9) (Optional) Queue anstoßen

postqueue -p
sudo postqueue -f

10) Zustellbarkeit via DNS erhöhen (empfohlen)

  • SPF – je nach Provider:
    • Yandex: v=spf1 include:_spf.yandex.net ~all
    • Google: v=spf1 include:_spf.google.com ~all
    • Outlook/M365: v=spf1 include:spf.protection.outlook.com ~all
  • DKIM/DMARC: Im Provider-Panel aktivieren und DNS-Einträge setzen.

Provider-Profile (ersetze [SMTP_HOSTNAME] in den Schritten oben)

Yandex

  • Host: [smtp.yandex.com]:587 (STARTTLS)
  • Benutzer: vollständige E-Mail
  • App-Passwort empfohlen

Google (Gmail / Google Workspace)

  • Host: [smtp.gmail.com]:587 (STARTTLS)
  • Benutzer: vollständige E-Mail
  • App-Passwort (2FA aktiv) oder SMTP-Relay in der Admin-Konsole freischalten

Outlook / Microsoft 365

  • Host: [smtp.office365.com]:587 (STARTTLS)
  • Benutzer: vollständige E-Mail
  • In Exchange-Admin evtl. „Authenticated SMTP“ für das Postfach aktivieren; 2FA → App-Passwort

Ergebnis

Mit dieser Konfiguration versendet der Server alle ausgehenden E-Mails über den gewählten Provider (Port 587, STARTTLS). System-Absender werden zuverlässig auf ABSENDER@IHRE-DOMAIN.TLD umgesetzt, und root-Benachrichtigungen erreichen die gewünschte Mailbox. Logs bestätigen den Versand mit TLS und status=sent.


Kurzankündigung (1–2 Sätze)

Ausblick: Im nächsten Beitrag zeigen wir, wie du deinen Server abhärtest, wenn du keinen eigenen Mail-Dienst betreibst: Eingehende Mail-Ports schließen, nur ausgehende SMTP-Verbindungen zum Provider erlauben und Fail2ban für Postfix/Dovecot aktivieren. So reduzierst du Angriffsfläche und Log-Rauschen deutlich.

Teaser-Box (etwas ausführlicher)

Nächster Artikel: Mail-Härtung ohne lokalen Maildienst

Wenn dein Server keinen eigenen Mail-Empfang/Clientzugang bereitstellen soll, lässt sich die Sicherheit spürbar erhöhen:

  • Firewall: Eingehend 25/465/587 (sowie 110/143/993/995) schließen, nur ausgehende Verbindungen zum SMTP-Provider auf Port 587 (STARTTLS) erlauben.
  • Postfix nur als Smarthost: submission/smtps in master.cf deaktivieren, falls nicht benötigt.
  • Dovecot abschalten, wenn kein IMAP/POP3 gebraucht wird.
  • Fail2ban: Jails für postfix-sasl (und ggf. dovecot) aktivieren/tunen, um Brute-Force-Versuche zu blocken.
  • Tests & Verifikation: openssl s_client, nmap von extern, Log-Checks.

Der vollständige Leitfaden mit UFW/nftables-Regeln, Beispiel-master.cf-Snippets und Fail2ban-Konfiguration folgt im nächsten Artikel.

Hinweis:: Wenn dir dieser Beitrag gefallen oder geholfen hat, kannst du mich gerne mit einer kleinen Unterstützung motivieren 😊

☕ Buy me a coffee

💙 Support via PayPal

₿/Ξ: Donate with Bitcoin
Address: bc1qt7wc6jfth4t2szc2hp6340sqp3y0pa9r3ywgrr

Show QR codeCrypto QR code
Published inAllgemeinLinux & SerververwaltungMailserver & SMTP Konfiguration

Schreib den ersten Kommentar

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert