Mailfunktionalität für lokale PHP Anwendungen unter Linux
Im Entwicklungsprozess einer PHP Anwendung kommt man früher oder später an den Punkt, wo es interessant wird E-Mail-Funktionalität zu integrieren. Denkbar sind Anwendungsbeispiele wie: Anforderung eines neuen Passwortes für den Login oder das automatische Informieren bei Aktionen. Doch zunächst findet die Entwicklung meist auf lokalen Entwicklungsmaschinen statt, so wie in diesem Beispiel ein Linux Rechner (Kubuntu 10.04). Das Problem was an dieser Stelle auftaucht ist klar, per default ist PHP so eingerichtet, dass es die lokale Mailfunktion des Betriebssystemes nutzt, konkret heißt dies der Postfix-Dienst muss die E-Mails ausliefern, was er zunächst im besten Fall auch nur lokal macht.
Also ist die Frage: Wie bekomme ich Postfix dazu mit meinem “öffentlichen” E-Mail Account, Mails zu versenden. Dies wird im Folgenden mit anschaulichen Erklärungen beschrieben.
sudo apt-get install postfixDie Einstelldialoge werden mit folgenden Werten belegt:
- Internet mit Smarthost
- Ihrem Rechnernamen (default vorausgefüllt)
- die Adresse des SMTP Servers ihres E-Mailproviders
Eine Nachbearbeitung der /etc/postfix/main.cf ist nötig, Folgendes ist hinzuzufügen
# noplaintext weglassen, wenn Passwörter im
# Klartext übertragen werden sollen
# (nicht empfohlen)
# smtp_sasl_security_options = noplaintext noanonymous
smtp_sasl_security_options = noanonymous
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_password
# lokale sender (username) sollen
# auf reale adressen gemapt werden
sender_canonical_maps = hash:/etc/postfix/sender_canonicalNun sind die entsprechenden Dateien sasl_password und sender_canonical vorzubereiten.
In der Datei /etc/postfix/sasl_password werden der Server, Login und das Passwort angegeben, mit dem sich Postfix bei Ihrem E-Mailprovider authentifiziert.
smtp.IhreDomain.de MailNutzername:PasswortDesNutzersIn der Datei /etc/postfix/sender_canonical werden die System-Nutzer den jeweiligen Mailadressen zugewiesen. So z.B. der www-data Nutzer (unter dem Apache2 läuft) auf eine Mailadresse Ihrer Wahl.
www-data your-mail-adress@yourmailprovider.desudo postmap /etc/postfix/sasl_password
sudo postmap /etc/postfix/sender_canonical
sudo service postfix reloadDer postmap Befehl erstellt eine für Postfix lesbare .db Datei.


