senäh

17senäh und so…

Coding-Logo

PHP, Server & Config
10. Sep 2011
Kommentare: 9

Lokaler Mailserver unter Mac OS X Lion

Kategorien: PHP, Server & Config | 10. Sep 2011 | Kommentare: 9

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:

  1. Ihr braucht son Ding jetzt unbedingt und sucht eine schnelle Lösung.
  2. 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 :D

Nachdem ihr das Programm installiert und gestartet habt, klickt ihr auf den Reiter Postfix unter Server.

Postfix-Einstellungen unter MAMP Pro

Postfix-Einstellungen unter MAMP Pro

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:

1
2
3
4
5
6
7
8
9
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:

Autor: Enno

Ich bin Enno. PHP ist mein Ding, aber auch alles Neue rund um die Themen HTML5, CSS3 & Co finde ich interessant. Ich mag es Leuten zu helfen und mein Wissen weiterzugeben. Sollte dir mein Beitrag gefallen haben, lass doch nen Kommentar da oder benutze einen der Social Buttons, um deinen Dank auszudrücken ;)

Kommentare (9)

  1. Hallo, 
    Du nennst die eine Datei einmal sasl_passwd bei den Befehlen aber dann sasl_password. Ist ned Absicht oder? :) 

    • Hey Jakob,
      vielen lieben Dank für den Hinweis. Hab es mal gefixed.
      Wer weiß, wieviele Leser das bereits in den Wahnsinn getrieben hat O_o 

  2. DANKE!! Das ich nicht selbst die main.cf lernen muss…

  3. Hallo!
    Ein paar Hinweise, um meinen etwas nutzlosen Post aufzuwerten:
    -Bei mir (Lion Server auf Mac Mini) war der Pfad /etc/postfix/sasl/passwd .
    -postmap -q meinHost.de /etc/postfix/sasl_passwd hatte bei mir keinen Effekt (kein Output im Terminal) (meinHost.de = mein.smtp.server).

    Nochmals danke!

    • Sorry für die späte Antwort und erst mal besten Dank für den Hinweis. Ich werde meinem MacBook irgendwann dieses Jahr noch eine SSD spendieren und dabei noch mal mit einer komplett frischen Installation starten. Mal sehen, ob mir dabei etwas ähnliches auffällt.

  4. Hallo,
    ich habe alles so durchgeführt wie in deiner Beschreibung (jedenfalls glaube ich das), aber wenn ich mit mailq die Warteschlange prüfe, steht bei “Sender/Recipient” Vorname@yahoo.com Vorname.Nachname@yahoo.com sprich die Sender E-Mail ist falsch, bzw. fehlt noch mein Nachname.
    Kannst du mir sagen an welchen Punkt ich etwas falsch gemacht haben könnte?

    • Uff, keine Ahnung, wo da was schief gegangen sein könnte. Da bleibt mir leider nichts weiter, als dir die unbefriedigende Antwort zu geben, es noch mal von vorn zu versuchen =/

    • Habe die Geschichte nochmal mit MAMP probiert. Genau das gleiche.. Wer weiß woran das wieder liegt.

Hinterlasse einen Kommentarsenäh

Pflichtfelder sind mit * markiert.