Postfix unter Mac OS X einrichten

Dieser Artikel beschreibt, wie der Webentwickler auf seinem Mac mit Apache-Webserver und PHP E-Mails versenden kann (mit der mail()-Funktion). Dafür wird der Dienst «Postfix» verwendet, der seit einigen Jahren serienmässig für den Versand der Mails verwendet werden kann. Dafür sind aber ein paar kleinere Arbeiten notwendig, die hier am Beispiel von Mac OS X 10.6 (Snow Leopard) beschrieben werden.

Wir gehen davon aus, dass Sie schon ein E-Mail-Konto bei einem Internet-Dienstleister haben, dessen SMTP-Zugangsdaten wir für die Postfix-Konfiguration verwenden können. Die SMTP-Zugangsdaten sind Mail-/SMTP-Server, Benutzername und Passwort.

HINWEIS: All diese Daten werden mit nachfolgender Konfiguration unverschlüsselt übermittelt. Für die verschlüsselte Übermittlung müssen Sie andere Artikel im Web konsultieren.

Launch-Item erstellen

Falls die Datei /System/Library/LaunchDaemons/org.postfix.master.plist noch nicht vorhanden ist, erstellen Sie diese Datei mit einem Texteditor. Diese Datei wird beim Systemstart ausgeführt, sodass Postfix automatisch gestartet wird. Sie sollte folgenden Inhalt aufweisen:

/System/Library/LaunchDaemons/org.postfix.master.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>Label</key>
	<string>org.postfix.master</string>
	<key>Program</key>
	<string>/usr/libexec/postfix/master</string>
	<key>ProgramArguments</key>
	<array>
	 <string>master</string>
	</array>
	<key>AbandonProcessGroup</key>
	<true/>
	<key>OnDemand</key>
	<false/>
	<key>RunAtLoad</key>
	<true/>
	<key>KeepAlive</key>
	<true/>
</dict>
</plist>

Die letzten 4 Zeilen vor dem </dict>-Abschluss-Tag (fett gekennzeichnet) müssen eingefügt werden, falls man die Datei org.postfix.master.plist schon vorfindet.

Postfix konfigurieren

Die nächsten Arbeiten werden nun im Verzeichnis /etc/postfix/ ausgeführt. Starten Sie das Programm «Terminal» und wechseln Sie mit dem Befehl cd /etc/postfix ins erwähnte Verzeichnis.

Relay-Passwörter speichern

Der SMTP-Server Ihres E-Mail-Dienstleisters dient als Relais, da Ihr Mac wahrscheinlich nicht unter einer offiziellen Domain aktiv ist. Legen Sie mit Ihrem Texteditor unter /etc/postfix/ die Datei relay_passwd mit den SMTP-Zugangsdaten auf einer Zeile an. Es können auch mehrere Zugangsdaten getrennt mit einem Zeilenumbruch eingefügt werden.

/etc/postfix/relay_passwd

mail.mydomain.tld benutzername:passwort

* tld = Top Level Domain wie .com, .ch, .de etc.

Im Terminal müssen Sie noch die entsprechenden Rechte setzen und danach die Passwort-Datenbank relay_passwd.db aktualiseren:

soehne:~ spiderman$ sudo chown root:wheel relay_passwd
Password: IHR ADMIN-PASSWORT
soehne:~ spiderman$ chmod 0600 relay_passwd
soehne:~ spiderman$ postmap relay_passwd

Konfigurationsdatei bearbeiten

In der Postfix-Konfigurationsdatei müssen Sie noch ein paar Positionen anpassen oder am Schluss der Datei anlegen. Öffnen Sie mit Ihren Texteditor die Datei /etc/postfix/main.cf und fügen folgende Zeilen ein:

/etc/postfix/main.cf

inet_interfaces=all
mynetworks_style=subnet

myhostname=www.mydomain.tld
mydomain=mydomain.tld
myorigin=$mydomain

# SMTP-Server mit Port 587 angeben
# manchmal wird der Server mit Square Brackets [...] umklammert
# das kann u.U. zu Problemen fuehren
relayhost=mail.mydomain.tld:587

smtp_sasl_auth_enable = yes  
smtp_sasl_password_maps = hash:/etc/postfix/relay_passwd  
smtp_sasl_security_options =

Postfix starten

Im Terminal stoppen und starten Sie Postfix mit folgenden Anweisungen:

soehne:~ spiderman$ sudo launchctl
Password: IHR ADMIN-PASSWORT 
soehne:~ spiderman$ launchd% stop org.postfix.master
soehne:~ spiderman$ launchd% start org.postfix.master
soehne:~ spiderman$ exit

Postfix testen

Legen Sie im Root Ihres Webservers die Datei testmail.php mit folgendem Inhalt an:

/Users/benutzername/Sites/testmail.php

<?php
$to = "ich@mydomain.tld";
$subject = "Testmail via Apache, PHP und meinem Mac";
$message = "Dieses Testmail ist von meinem Mac versendet worden. Postfix ist richtig konfiguriert.";
mail( $to , $subject , $message );
?>

Danach rufen Sie im Webbrowser die Adresse http://127.0.0.1/testmail.php auf und ein paar Sekunden später Ihre Mailbox mit dem E-Mail-Anwendung Ihrer Wahl ab. Falls Sie das Mail mit dem Betreff «Testmail via Apache, PHP und meinem Mac» erhalten haben, ist alles in Ordnung.

Problembehebung

Falls es doch nicht so geklappt hat wie vorgesehen, überprüfen Sie zuerst, ob Sie alle Zugangsdaten richtig eingegeben haben, denn dabei gibt es die häufigsten Fehler. Mit dem Dienstprogramm «Konsole» können Sie in der Protokoll-Leiste unter /private/var/log den Inhalt der Log-Datei mail.log analysieren, in der Sie ggf. Hinweise auf Fehler und Probleme finden.

Neuen Kommentar schreiben

CAPTCHA
Diese kleine Aufgaben müssen wir Ihnen leider stellen, um Roboter daran zu hindern, dieses Formular zu missbrauchen.
Image CAPTCHA