Postfix SMTP Server Einrichten Ubuntu
Postfix SMTP Mail Server auf Ubuntu einrichten – E-Mails versenden
Was ist Postfix?
Postfix ist ein moderner SMTP-Mail-Transfer-Agent (MTA) für Linux und Unix. Im Gegensatz zu älteren Tools wie Sendmail ist Postfix sicher, schnell und leicht zu konfigurieren. Postfix wird häufig auf Servern installiert, um System-Benachrichtigungen, Backup-Reports und Anwendungs-E-Mails zu versenden.
Ein MTA ist nicht die gleiche Software wie ein Mail-Server (z.B. mit POP3/IMAP). Ein MTA kümmert sich nur um das Versenden und Relay von E-Mails, nicht um Benutzer-Mailboxes. Für vollständige E-Mail-Hosting benötigen Sie zusätzlich Dovecot oder ähnliche Software.
Anwendungsfälle
| Anwendungsfall | Beschreibung |
|---|---|
| System-E-Mails | Cron-Jobs, Logwatch, SMART-Fehler, Monitoring-Alerts |
| Application Mail | E-Mails von Web-Anwendungen (Passwort-Reset, Benachrichtigungen) |
| SMTP Relay | Relay zu externem SMTP-Server (Gmail, Office365, AWS SES) |
| Mail Queue | Lokale Mail-Queue mit Delivery-Retry |
| Postmaster | Bounce-Nachrichten und Delivery-Reports |
Installation auf Ubuntu
# Postfix installieren sudo apt update sudo apt install postfix -y # Bei der Installation wird ein Setup-Dialog angezeigt: # "Internet Site" wählen für SMTP-Relay # Mailserver-Hostname: mail.example.com # Postfix Service starten sudo systemctl start postfix sudo systemctl enable postfix # Status überprüfen sudo systemctl status postfix # Version überprüfen postconf -d | grep mail_version
Postfix als Send-Only Relay konfigurieren
Postfix wird oft konfiguriert, um E-Mails an einen externen SMTP-Server zu relayieren (z.B. Gmail, SendGrid, AWS SES).
# /etc/postfix/main.cf bearbeiten sudo nano /etc/postfix/main.cf # Wichtige Einstellungen hinzufügen/ändern: # Grundkonfiguration myhostname = mail.example.com mydomain = example.com myorigin = $mydomain inet_interfaces = localhost inet_protocols = ipv4 # Relay-Konfiguration relayhost = smtp.gmail.com:587 # SASL Authentication smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtp_tls_security_level = encrypt smtp_tls_note_starttls_offer = yes # Nur lokale Delivery mydestination = localhost # Keine lokalen User-Mailboxes local_recipient_maps = # Relativer zu Envelope-Sender smtp_generic_maps = hash:/etc/postfix/generic
SASL Authentifizierung mit externem SMTP konfigurieren
# SASL Passwort-Datei erstellen sudo nano /etc/postfix/sasl_passwd # Inhalt (Gmail Beispiel): smtp.gmail.com:587 username@gmail.com:password # Mit SendGrid: smtp.sendgrid.net:587 apikey:SG.xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # Mit AWS SES: email-smtp.us-east-1.amazonaws.com:587 AKIA1234567890ABCDEF:ABCD1234567890... # Datei-Permissions setzen sudo chmod 600 /etc/postfix/sasl_passwd sudo chown root:root /etc/postfix/sasl_passwd # Hash-Datenbank erstellen sudo postmap /etc/postfix/sasl_passwd # Postfix Konfiguration überprüfen und neustarten sudo postfix check sudo systemctl restart postfix
E-Mail Test und Troubleshooting
# Test-E-Mail versenden echo "Test Body" | mail -s "Test Subject" admin@example.com # Mit sendmail Command sendmail -v user@example.com < message.txt # Mail Queue überprüfen mailq # Or postqueue -p # Mail aus Queue löschen sudo postsuper -d ALL # Bestimmte Mail aus Queue löschen sudo postsuper -d 12345ABCDE # Mail Queue flushen (Delivery versuchen) sudo postfix flush # Logs überprüfen sudo tail -f /var/log/mail.log # Spezifische User-Mail überprüfen sudo postqueue -p | grep user@example.com # SMTP Connection Test telnet localhost 25 # oder mit OpenSSL openssl s_client -connect smtp.gmail.com:587 -starttls smtp
Spam-Schutz und ACL Konfiguration
# /etc/postfix/main.cf
# Spam-Schutz für unbekannte Sender
smtpd_relay_restrictions =
permit_mynetworks
permit_sasl_authenticated
defer_unauth_destination
# Reject unbekannte lokale User
local_recipient_maps = unix:passwd.byname $alias_maps
# Bounce-Benachrichtigungen deaktivieren
notify_classes = resource,software
# Rate Limiting
smtpd_client_message_rate_limit = 100
# Bounce Handling
bounce_queue_lifetime = 5d
maximal_queue_lifetime = 5d
Vergleich: Postfix vs Exim vs Sendmail
| Kriterium | Postfix | Exim | Sendmail |
|---|---|---|---|
| Komplexität | Einfach | Mittel | Sehr komplex |
| Konfiguration | main.cf einfach | exim.conf mittelmäßig | sendmail.cf sehr komplex |
| Performance | Sehr gut | Gut | Gut |
| Speichernutzung | Niedrig | Mittel | Mittel |
| Security | Sehr gut | Sehr gut | Gut (alt) |
| Verbreitung | Sehr weit verbreitet | Weit verbreitet (Debian) | Alt, weniger verbreitet |
| Relay-Unterstützung | Ausgezeichnet | Gut | Gut |
| Learning Curve | Flach | Mittel | Steil |
Weitere Ressourcen
- 📖 SPF, DKIM und DMARC E-Mail-Sicherheit
- 📖 Mailcow Email Server Installation
- 📖 Linux Server absichern Anleitung
- 📖 Dovecot IMAP/POP3 Server Konfiguration
- 📖 Mail Queue Management
- 🔧 Sichere Server bei Enjyn mieten
- 🔧 Enjyn Server Monitor – Kostenlose Uptime-Überwachung
Letzte Aktualisierung: April 2026 | Postfix 3.7+