Wer lokal ein Projekt entwickelt, bei dem ein paar Testmails verschickt werden müssen, benötigt einen lokalen Mailserver. Ich habe mir soeben einen eingerichtet und möchte euch nun die Möglichkeit geben es mir gleich zu tun 😉
Dabei habt ihr 2 Möglichkeiten:
- Ihr braucht son Ding jetzt unbedingt und sucht eine schnelle Lösung.
- Ihr wollt verstehen, was genau dahinter steckt, um bei evtl. auftretenden Problemen flexibel und reaktionsfähig zu sein.
Die schnelle Lösung
Bitte einmal die All-In-One-Solution MAMP runterladen. Dabei handelt es sich um ein Komplettpaket aus Apache, PHP und MySQL. Die Pro-Version lässt sich 30 Tage lang kostenlos testen. Euer Vorteil 😀
Nachdem ihr das Programm installiert und gestartet habt, klickt ihr auf den Reiter Postfix unter Server.
Hier müsst ihr natürlich eure Daten eintragen. Wichtig sind hierbei die Felder des Smart Hosts. Hier gehören die SMTP-Daten eines Servers rein, über den ihr normalerweise eure Mails verschickt. Schaut dazu am besten in das Mail-Programm eurer Wahl, dort solltet ihr alles finden.
Hinweis: gut möglich, dass das Ganze über TLS oder SSL nicht funktioniert. Es gibt zwar Lösungen dafür (siehe Quellen), ich habe das ganze mit Googlemail jedoch nicht zum Laufen bekommen 🙁
Ein abschließender Klick auf Postfix-Konfiguration ändern und eure Aufgabe ist beendet. Ihr solltet nun auch über lokale Skripte Mails versenden können.
Die nicht ganz so schnelle Lösung
Jetzt wird’s gruselig, denn wir werden massiven Gebrauch vom (*Pro-7-Blockbuster-Stimme*) Terminal machen. Aber keine Angst, ist alles halb so wild.
Ihr solltet allerdings darauf achten, dass ihr Zugriff auf versteckte Dateien habt. Entweder ihr besorgt euch das kostenlose Programm InVisibles oder ihr habt den genialen Finder-Ersatz PathFinder. Dort könnt ihr über Darstellung -> Unsichtbare Dateien anzeigen genau das tun.
Alles klar? Dann kann’s losgehen.
Zugangsdaten hinterlegen
Navigiert in den Ordner etc/postfix/. Legt dort eine neue Datei mit Namen sasl_passwd an (ja, ohne Dateiendung). Öffnet diese Datei mit einem Texteditor eurer Wahl. Höchstwahrscheinlich werdet ihr das ein ums andere Mal nach eurem Passwort gefragt. Das ist richtig so, wir fummeln hier schließlich in Systemordnern rum.
Nun tragt ihr die Zugangsdaten zum SMTP-Server eurer Wahl ein, über den am Ende die Mails verschickt werden sollen. Und zwar in diesem Format: meinHost.de meinBenutzername:meinPasswort
.
Aus diesen Daten muss jetzt ein sogenannter lookup-table generiert werden. Das geschieht via postmap /etc/postfix/sasl_passwd
. Zur Überprüfung, ob bisher alles richtig ist, kann man mal postmap -q meinHost.de /etc/postfix/sasl_passwd
durchlaufen lassen (sollte Benutzernamen und Passwort ausspucken).
Konfigurationsdaten anpassen
Öffnet die Datei /etc/postfix/main.cf und schreibt ans Ende der Datei folgendes:
myorigin = meinHost.de
myhostname = mailer.$myorigin
smtpd_sender_restrictions = permit_inet_interfaces
# smart host
relayhost = meinHost.de
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
Das sind dieselben Zeilen, die MAMP auch hinzugefügt hätte.
Fertig! Ach nee… testen!
Eine Test-Mail versenden geht mit date | mail -s test empfaenger@blabla.de
. Die aktuelle Mail-Warteschlange lässt sich ganz easy über mailq
abrufen. Sollte diese bei euren Tests mal volllaufen, könnt ihr sie mit sudo postsuper -d ALL
löschen. Postfix nach Aktualisierung der Konfigurationsdaten neu starten geht so: sudo launchctl stop org.postfix.master
.
Meine Quellen:
- Postfix unter Max OS X einrichten
- Using gmail for outbound smtp on Max OS X Leopard
- Gmail Email Relay using Postfix on Mac OS X 10.5 Leopard
- Das Postfix FAQ