Postfix installieren und konfigurieren
Klassischerweise würde man auf einem Ubuntu-Server sendmail installieren und einrichten. Jedoch ist dieses Paket dermassen komplex geworden, dass es mein Verständnis und mein Wille, mich da einarbeiten zu wollen, übersteigt. Schliesslich möchte ich bloss ein paar Mails versenden können, das ist alles. Deswegen habe ich mich für Postfix entschieden. Dieses Paket ist deutlich einfacher einzurichten und bietet in vielen Fällen ausreichend Optionen, um (fast) alle Bedürfnisse zu befriedigen.
Nachrichten-Transport
Postfix ist ein MTA, ein Mail Transfer Agent, der Nachrichten von einem System zu andern transportiert. Damit lassen sich keine Mails abholen oder gar lesen, lediglich der Versand wird damit realisiert. Das ist denn auch mein Anliegen, das ich nachfolgend in der Umsetzung beschreibe.
Smarthosts einsetzen
Das grosse Spamaufkommen der letzten Jahre hat die Hoster und Provider dazu veranlasst, etwas vorsichtiger beim Annehmen von fremden Mails zu sein. Deswegen kann man heute mit einer dynamischen IP kaum mehr Nachrichten in das Internet verschicken. Die meisten MTA nehmen Nachrichten von solchen Mailservern nicht mehr an. Stattdessen sollte man – will man denn Nachrichten nach draussen verschicken und nicht bloss intern – einen so genannten Smarthost nutzen. Das ist ein MTA, zu dem infolge eines Vertrages (Hosting oder Providing) Zugang besteht. Zum Beispiel könnte ich den SMTP-Server von hispeed.ch nutzen, um meine Nachrichten zu versenden. Denn ich kann mich an jenem Rechner authentifizieren. Oder auch derjenige von meinem Hoster würde funktionieren.
Postfix Installieren
Zunächst braucht es mindestens ein Paket, welches installiert werden muss, nämlich postfix:
sudo apt-get install postfix
Bei der Installation tauchen einige Fragen auf, welche man grundsätzlich mit ENTER übernehmen kann. Lediglich bei der Frage nach der Sendeart habe ich Internet mit Smarthost gewählt.

Falls man Mails über die Konsole versenden will – das ist beim Einrichten und Testen von Postfix sehr sinnreich – dann braucht es noch das Päckli namens mailx. Und schliesslich möchte man vielleicht einen SmartHost einsetzen, bei dem man sich authentifizieren muss, dann sollte man das Paket libsasl2-modules noch nutzen. Damit ist die Installation bereits abgeschlossen. Nun braucht es noch ein paar wenige Eingriffe in die Eingeweide des MTA und dann kann es losgehen.
Postfix konfigurieren
Die Grundkonfiguration wird in der Datei/etc/postfix/main.cf festgehalten. Wird ein Smarthost eingesetzt, müssen dort noch einige Zeilen ergänzt werden:
smtp_sasl_auth_enable = yes
smtp_sasl_security_options = noplaintext noanonymous
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
Falls das Versenden nur per Klartext-Übermittlung des Kennworts funktioniert, muss das Wort noplaintext aus der zweiten Zeile entfernt werden.
Die Datei sasl_password exisitiert noch nicht, sie muss angelegt werden. Man kann sie in einem normalen Editor erstellen und dann nach /etc/postfix/ hochladen. In ihr müssen folgende Werte für das Authentifizieren am Smarthost vorkommen:
Name des SMTP-Servers, der Benutzername, normalerweise die E-Mail-Adresse, das Kennwort. Das sieht dann etwa so aus und muss mit diesem Syntax hinterlegt sein:
mail.server.ch sepp@fritz.ch:Kennwort
Anschliessend muss die Datenbank erzeugt oder erneuert werden. Sie nennt sich sasl_password.db und wird mit folgendem Befehl erzeugt:
sudo postmap /etc/postfix/sasl_password
Achtung: Oft passiert es, dass der Dienst die Datenbank sasl_password.db nicht oder fehlerhaft erstellt. Deswegen rate ich dazu, zunächst den Postfix-Dienst neu zu starten und erst dann die Datenbank zu erstellen.
sudo /etc/init.d/postfix restart
sudo postmap /etc/postfix/sasl_password
Mittlerweile verlangen Teile der Hoster und Provider nicht nur, dass sich ein “mailsendewilliger Agent” per Benutzername und Kennwort authentifiziert, viele Anbieter verlangen ausserdem, dass die Absender-Adesse korrekt angegeben wird. GMX ist beispielsweise ein solcher Dienst, es gibt noch weitere. Das erreicht man, in dem man Postfix mitteilt, welcher lokale Benutzer über welche E-Mail-Adresse verfügt. Die teilt man ihm mit der Datenbank sender_canonical.db mit, welche im Verzeichnis /etc/postfix/ liegt. Jene Datenbank wird mit der Datei sender_canonical erstellt, hochgeladen und dann per Befehl generiert.
In der Datei stehen lediglich pro Zeile jeweils zwei Werte: Benutzer und die E-Mail-Adresse. Die Datei darf natürlich mehrere solche Paare aufweisen. Sie muss daher etwa so aussehen:
roman yoda@yoda.ch
elife elife@yoda.ch
ruben ruben@schwammkopf.de
Danach lädt man die Datei nach /etc/postfix/ hoch und erstellt daraus mit folgendem Befehl eine Datenbank:
sudo postmap /etc/postfix/sender_canonical
Nun braucht es noch eine Zeile in der main.cf unter /etc/postfix/:
sender_canonical_maps = hash:/etc/postfix/sender_canonical
Danach nicht vergessen, Postfix neu zu starten und das war es dann eigentlich schon.
Postfix testen
Schlussendlich sollte man noch testen, ob man tatsächlich Mails versenden kann. Ist das Paket mailx installliert, geht das ganz einfach. Per Terminal ein Mail versenden:
mail -s "Betreff: Testmail, bitte ankommen!" fritzli@seppli.ch
Nach der Eingabe dieser Zeile bleibt der Prompt stehen, da der Text (Body) für das Mail erwartet wird. Den schreibt man ganz einfach in das Terminal. Ist der Text fertig, braucht es eine eigenen Zeile, in der bloss ein Punkt steht. Damit weiss Postfix, dass der Text nun fertig ist und fragt nun noch nach einem BBC-Empfänger. Falls es keinen braucht, einfach ENTER drücken. Damit geht die Nachricht weg.
Jetzt sollte man das Log prüfen und sehen, ob die Nachricht wirklich verschickt worden ist. Das Logfile befindet sich hier:
/var/log/mail.log
Ähnliche Artikel
- 3. Dezember 2009 -- Nullmailer unter Ubuntu installieren (4)
- 16. April 2009 -- RoundCube 0.2.1 im Test (3)
- 22. Juli 2008 -- Sylpheed bewährt sich (6)
- 30. Juni 2008 -- Ist Mulberry Müll? (2)
- 2. April 2008 -- RoundCube Webmail 0.1-stable auf Ubuntu / Debian (3)

12. August 2009 um 09:19 Uhr
Danke, mit deiner Anleitung habe ich unter Centos den postfix zum Leben erweckt
Ein Schönheitsfehler habe ich noch.
Der Empfänger sieht als Absender immer meinen Linux Usernamen -> root.
Kann ich das irgendwo noch editieren?
12. August 2009 um 09:29 Uhr
Wertvolle Tipps können auch in diesen Tutorials – http://workaround.org/ispmail – gefunden werden, danach habe ich meinen root-Server eingerichtet. Für das reine versenden von einer Workstation ist nullmailer sehr gut geeignet.
12. August 2009 um 10:03 Uhr
@tatoosh: Womit versendest Du die Mails?
@Dirk: Danke für den Link!
06. Dezember 2009 um 18:27 Uhr
Danke! Einfache und nützliche Anleitung.
Nach zahlreichen Fehlversuchen ging nichts mehr. Hatte schon angst meine IP ist durch die Fehlversuchen in einer Blacklist gelandet. Heute, mit dieser Anleitung lief alles wie geschmiert.
07. Februar 2010 um 18:27 Uhr
Sehr schöne, klare Anleitung ! Vielen Dank. Installiere es gerade auf meinem Notebook. Gruß Daniel