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