
E-Mail from Web-Site@localhost
PHP-sendmail in einer XAMPP-Installation konfigurieren
Um die Funktion von beispielsweise Kontaktnachrichten oder auch Benutzerkommentaren via PHP-sendmail-Funktion vom lokalen Web-Server aus vor Veröffentlichung zu testen, muss XAMPP konfiguriert werden.
Wir zeigen Ihnen, was zu tun ist.
Die Herausforderung
Die gesamte Projektumgebung einer Website besteht aus drei Teilen: der Entwicklungsumgebung (also einem lokalen Arbeitsverzeichnis irgendwo im File-System), der Testumgebung (einem lokalen Webserver; localhost) und der Produktionsumgebung (die Remote-Webserver im WWW, auf die Besucher schließlich zugreifen). Der Arbeitsablauf gestaltet sich demnach so: entwickeln, publizieren und testen auf localhost, publizieren auf dem Webserver der Website.
Die Testumgebung, den lokalen Web-Server haben wir mit XAMPP eingerichtet.
Web-Seiten nutzen gerne die PHP-Funktion sendmail, um Benutzereingaben oder automatisierte Nachrichten an den Web-Administrator oder den Content-Manager zu senden. Dafür nutzen Web-Server Funktionen, die von Web-Hosting-Plattformen bereitgestellt werden. Sie haben bereits mindestens einen E-Mail-Account bei einem Provider, den Sie dafür nutzen? Dann ist das kein Problem: Es funktioniert!
Anders für Ihren lokalen Web-Server: Da muss die Funktion sendmail zunächst konfiguriert werden. Wir zeigen Ihnen hier, wie die sendmail-Funktion in der XAMPP-Umgebung zu konfigurieren ist.
Der Arbeitsauflauf
Es sind vier Arbeitsschritte nötig:
- 1. Bereitstellung der Zugangsdaten eines geeigneten SMTP-E-Mail-Accounts
- 2. Anpassen der php.ini in »xampp\php\php.ini«
- 3. Anpassen der sendmail.ini in »xampp\sendmail\sendmail.ini«
- 4. Ggf. die Ausführungsrechte für die Datei /xampp/sendmail/sendmail.exe setzen
Wichtiger Hinweis zum Punkt 4: Ausführungsrechte unter Windows 8 setzen!
Uns haben etliche Anfragen von Benutzern erreicht, die unter Windows 8 ihre E-Mails zwar scheinbar erfolgreich senden konnten, aber keine empfangen haben.
Unter Windows 8 (ggf. auch bei älteren Versionen) müssen zusätzlich die Ausführungsrechte für das XAMPP-Programm sendmail.exe gesetzt werden. Wie das geht, erklären wir weiter unten am Ende dieser Beschreibung. Jetzt sind zunächst die Zugangsdaten zu besorgen und die ini-Dateien anzupassen.
1. Einrichtung bzw. Bereitstellung des E-Mail-Accounts
Es empfiehlt sich, für diesen Zweck eine eigene E-Mail-Adresse einzurichten. Die meisten Web-Hoster bieten in den Paketen neben dem Webspace mit den URLs zahlreiche, frei belegbare E-Mail-Accounts an. Nutzen Sie einen für Nachrichten aus der Testumgebung ihrer Web-Projekte.
Notieren Sie sich die Zugangsdaten. Sie benötigen:
- die SMTP-Adresse
- die SMTP-Port-Nummer
- die Login-Daten (E-Mail-Adresse, Passwort)
2. Anpassen der php.ini in »xampp\php\php.ini«
Erstellen Sie eine Sicherheitskopie der Datei »xampp\php\php.ini« unter einem neuen Namen (z. B. »xampp\php\php.ini.bup«).
Finden Sie in der Datei »xampp\php\php.ini« den Abschnitt, der mit »[mail function]« eingeleitet wird. Nehmen Sie folgende Anpassungen vor:
Anmerkung: Die hellgrauen Kommentarzeilen dienen der Erläuterung an dieser Stelle und sind in Ihrer originalen Datei nicht zu finden. Die roten Textteile sind anzupassen.
Tipp: Schreiben Sie Zeilen, die Sie ändern möchten, neu! Lassen Sie die originalen Zeilen stehen, kommentieren Sie sie nur aus, in dem Sie ein Semikolon (";") an den Zeilenanfang setzen.
[mail function] ; SMTP-Adresse des Providers Ihres E-Mail-Accounts eintragen ; SMTP = localhost SMTP = smtp.domain ; Vorgegebene SMTP-Port-Nummer eintragen ; smtp_port = 25 smtp_port = port-number ; Absendername eintragen, idealer Weise ist das der Name des Accounts sendmail_from =Website@localhost ; Wenn die E-Mail an einen E-Mail-Account geschickt werden soll, ; aktivieren Sie diese Zeile (Kommentar-Zeichen entfernen): ; sendmail_path = »\«\xampp\sendmail\sendmail.exe\« -t« ; Wenn die E-Mail stattdessen nur einfach in das lokale Verzeichnis ; \xampp\mailoutput auf Festplatte geschrieben werden soll, ; aktivieren sie diese Zeile (Kommentar-Zeichen entfernen): ; sendmail_path = »\xampp\mailtodisk\mailtodisk.exe«
3. Anpassen der Datei »xampp\sendmail\sendmail.ini«
Erstellen Sie eine Sicherheitskopie der Datei »xampp\sendmail\sendmail.ini« unter einem neuen Namen (z. B. »xampp\sendmail\sendmail.ini.bup«).
Finden Sie in der Datei »xampp\sendmail\sendmail.ini« den Abschnitt, der mit »[sendmail]« eingeleitet wird. Nehmen Sie folgende Anpassungen vor:
[sendmail] ; you must change mail.mydomain.com to your smtp server, ; Setzen Sie hier also die tatsächliche SMTP-Adresse ein: smtp_server=smtp.domain ; smtp port (normally 25) ; Setzen Sie hier die tatsächliche SMTP-Port-Nummer ein: smtp_port=port-number ;default_domain=mydomain.com ; Setzen Sie hier den tatsächlichen Domain-Namen ein: default_domain=domain.de ; if your smtp server requires authentication, ; modify the following two lines ; Setzen Sie hier die Werte ein, wenn das Konto Authentifikation verlangt, ; löschen Sie dann die einleitenden Kommentarzeichen ";": ; auth_username={nur, wenn vom Provider verlangt} ; auth_password={nur, wenn vom Provider verlangt} ; if your smtp server uses pop3 before smtp authentication, modify the ; following three lines. do not enable unless it is required. ; Setzen Sie nur dann Werte ein, wenn es der Provider verlangt! ; pop3_server={pop3-Adresse des Providers} ; pop3_username={E-Mail-Adresse des Accounts} ; pop3_password={Passwort des Accounts} ; force the sender to always be the following email address ; Wenn Sie es mögen, dass der Absender eindeutig ist: ; force_sender={E-Mail-Adresse des gewünschten Kontos}
4. Funktionstest und Dokumentation
Fertig! Sie können nun die neu eingerichtete E-Mail-Funktion testen:
- Richten Sie das E-Mail-Konto in Ihrem E-Mail-Client ein (z. B. Microsoft Outlook), um die E-Mails empfangen zu können.
- Starten Sie XAMPP und den lokalen Apache-Webserver neu.
- Rufen Sie Ihre lokale Web-Seite auf.
- Testen Sie die sendmail-Funktion über ein Formular ihrer Web-Seite.
- Wenn alles funktioniert, notieren Sie und beschreiben Sie Ihre persönlichen Anpassungen in den beiden Dateien in einer gesonderten Datei, die Sie außerhalb der XAMPP-Installation aufbewahren. So ist sichergestellt, dass Sie künftig nötige Anpassungen (z. B. bei Updates des XAMPP-Systems) schnell und einfach nachfahren können.
Ausführungsrechte für sendmail.exe unter Windows setzen
Unter Windows XP, Windows Vista und Windows 7 sollte die beschriebene Vorgehensweise (Konfigurieren der ini-Dateien) bereits zum Erfolg führen. Anders unter Windows 8. Gesendete E-Mails erreichen womöglich den Empfänger nicht.
Wenn das bei Ihnen der Fall ist, sollten Sie die Ausführungsrechte des Programms sendmail.exe verändern.
Einzustellen sind: »Kompatibilitätsmodus Windows XP SP3« und »Ausführen als Administrator«. Das geht so:
- Suchen Sie im Verzeichnis xampp/sendmail/ das Programm sendmail.exe
- Rechter Mausklick -> »Eigenschaften« anwählen
- Im Tab »Kompatibilität« den Knopf »Einstellungen für alle Benutzer ändern« drücken
- Im Feld »Kompatibilitätsmodus« das Häkchen setzen.
- In der Liste »Windows XP (Service Pack 3)« auswählen.
- Im Feld »Einstellungen« den Eintrag »Programm als Administrator ausführen« anklicken
- Alle Änderungen mit dem Knopf »Übernehmen« bestätigen.
Danach sollten Sie E-Mails senden und empfangen können.
Zusammenfassung
Um die PHP-sendmail-Funktion im Apache-Server zu aktivieren, waren vier Arbeitsschritte nötig:
- Bereitstellung der Zugangsdaten eines geeigneten SMTP-E-Mail-Accounts
- Anpassen der php.ini in »xampp\php\php.ini«
- Anpassen der sendmail.ini in »xampp\sendmail\sendmail.ini«
- Ggf. die Ausführungsrechte für die Datei /xampp/sendmail/sendmail.exe setzen
Befindet sich der E-Mail-Account bei einem Service-Provider, können Sie z. B. mit Microsoft Outlook ein E-Mail-Konto einrichten, in dem Sie die Nachrichten abholen.
Viel Spaß mit »E-Mail from Web-Site@localhost«!
Text | Grafik | Webdesign | Layout:
©by Reiner Makohl | Stilkunst.de
©by Sabrina | SABRINA CREATIVE DESIGN™
SK Version 29.01.2019 ●