Um Mails in der lokalen Entwicklungsumgebung (MAMP) verschicken zu können (beispielsweise unter PHP mit der Funktion mail), muss man Postfix konfigurieren. Das Ganze geht einfacher als gedacht – wie genau, möchte ich in diesem kurzen Beitrag vorstellen.
Als erstes müsst ihr eine Datei unter /etc/postfix/ anlegen – das geht am schnellsten mit vi.
sudo vi /etc/postfix/sasl_passwd
In diese Datei müsst ihr nun einen SMTP-Server eurer Wahl eintragen (inklusive Benutzerdaten). Dazu haltet ihr Euch an das folgende Schema:
<mailserver>:<port> <username>:<passwort>
Das könnte zum Beispiel so aussehen:
mail.deinedomain.de:587 max.mustermann:musterpasswort
Genauso könnt ihr beispielsweise auch den gmail-Server, gmx oder web.de verwenden – je nach dem was Euch zur Verfügung steht. Wie sich dafür im einzelnen die Benutzernamen zusammensetzen könnt ihr auf den Seiten der einzelnen Provider nachlesen.
Habt ihr diese Datei erstellt und gespeichert, muss eine weitere Datei im selben Verzeichnis bearbeitet werden. Die main.cf. Wer auf Nummer sicher gehen will, legt von dieser Datei zuvor ein Backup/eine Kopie an.
sudo vi /etc/postfix/main.cf
In diese fügt ihr nun ganz am Ende folgende Konfiguration ein (bitte nicht vergessen den Mailserver anzupassen)
mydomain_fallback = localhost mail_owner = _postfix setgid_group = _postdrop relayhost=deinmailserver.de:587 smtp_sasl_auth_enable=yes smtp_sasl_password_maps=hash:/etc/postfix/sasl_passwd smtp_sasl_security_options=
Damit wäre die Konfiguration auch schon geschafft. Nun muss nur noch Postfix gestartet werden:
sudo postfix start
Weitere Konfigurationen waren in meinem Fall nicht nötig, da in der php.ini der default bereits konfiguriert ist. Als nächstes hilft ein kurzes Script beim Test:
<?php if (mail("max.mustermann@deinedomain.de", "php test", "Per PHP versendet")) { echo 'Es hat funktioniert!'; }
Fertig! Viel Spaß mit der Konfiguration und der Möglichkeit Mails zu versenden. Sollte es doch ein wenig Probleme geben, könnt ihr es folgendermaßen probieren etwas genauer auf das Problem zu kommen. Als erstes kann man sich das log öffnen und dann versuchen eine Mail zu verschicken. Das Ganze gibt einem schon einen sehr guten Anhaltspunkt wo der Fehler liegen könnte:
tail -f /var/log/mail.log
Falls man etwas an den Einstellungen von postfix geändert hat, hilft es auch ein reload auszuführen. Aus irgend einem Grund hilft ein stop + start oft nicht.
sudo postfix reload
Weitere Hinweise in den Kommentaren.