Ich verwende XAMPP auf meinem lokalen Rechner und auf einem Server im Büro. Beide sind Windows-Maschinen.Warum verweist dieser PHP-Fehler auf localhost?
Ich schreibe einen Code, der mail()
verwendet, um E-Mail von einem Formular zu senden. Standardmäßig verwendet es sendmail.exe
(das mit XAMPP geliefert wird), um die E-Mail zu senden. In allen Fällen wird die E-Mail tatsächlich über einen dritten Computer gesendet, bei dem es sich um den Exchange-Server handelt.
Von meinem lokalen Rechner kann PHP Mail gut senden. Auf dem Server, beim Senden des Formulars bekomme ich diesen Fehler:
... gefolgt von meinem Dateinamen.
Ich verstehe nicht, warum es "localhost" verweist. Nirgendwo in php.ini oder sendmail.ini wird "localhost" verwendet - ich benutze den Namen des Mailservers. Die auf beiden Computern verwendeten SMTP-Informationen sind identisch.
Soweit ich das beurteilen kann, sind die beiden Umgebungen alles gemeinsam wichtig haben:
- Die php.ini-Dateien identisch sind
- Die sendmail.ini Dateien
- Beide Maschinen identisch sind, haben die gleiche Version von XAMPP installiert
- der gleiche Batch-Skript auf beiden Rechnern läuft und erfolgreich E-Mail über
sendmail.exe
senden
Ich habe Apache mehrmals gestoppt und gestartet, um sicherzustellen, dass die aktualisierten Konfigurationsdateien verwendet werden.
Wenn ich den Fehler oben bekomme, merke ich, dass keine Protokolldatei von sendmail.exe erstellt wird, was mich denken lässt, dass es nie ausgeführt wird.
Was fehlt mir?
Gelöst
Mein Problem war, dass ich dachte, es c:\xampp\php\php.ini
wurde mit, aber es war tatsächlich c:\xampp\apache\bin\php.ini
verwenden. Dies sollte offensichtlich gewesen sein, und ich hatte vorher die richtige Datei auf meinem lokalen Rechner bearbeitet, aber irgendwie war ich verwirrt, als ich die Änderungen auf dem Server vornahm.
Mit php_info()
zeigte mir, welche Konfigurationsdatei geladen wurde, und ich habe die richtige bearbeitet. Es funktioniert jetzt! Danke an alle für Ihre Hilfe.
laufen Sie einen anderen Mail-Server wie Quecksilber, die mit Xampp eine der Maschinen kommt? – markus
das gibt mir immer noch die hölle .... können sie referenzieren, wie sie ihre smtp-einstellungen auf der iis eingerichtet haben? speziell die, die Sie knnen mussten, um das in Gang zu bringen? – CheeseConQueso
@CheeseConQueso - Ich habe mich überhaupt nicht mit IIS herumgeschlagen. Apache (das mit XAMPP geliefert wurde) ist der Webserver; Es verwendet die Datei php.ini in seinem \ bin-Verzeichnis, um zu steuern, wie PHP-Code ausgeführt wird. In diesem Fall musste die Konfigurationsdatei die Einstellungen für die mail() - Funktion von PHP korrekt angeben. –