2009-08-13 20 views
3

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.

+0

laufen Sie einen anderen Mail-Server wie Quecksilber, die mit Xampp eine der Maschinen kommt? – markus

+0

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

+0

@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. –

Antwort

2

Sie sollten einen Anruf zu phpinfo() in Ihrer Seite hinzufügen und Scheck das:

  • Ihr PHP-Skript verwendet die richtige php.ini
  • Überprüfen Sie, ob die ini-Einstellungen SMTP (wie in den phpinfo-Tabellen angezeigt) korrekt sind.
1

Versuchen Sie, diese auf dem Server im Code verwenden:

ini_set("SMTP","smtp.example.com"); 
ini_set('sendmail_from', '[email protected]'); 
0

Ich hatte dies auch tun - Sie müssen die sendmail.ini verschickt an: Es sollte

Ihre sendmail.ini in lokalisiert werden C: \ xampp \ sendmail \ sendmail.ini.

Sie brauchen nur Sorge hier mit drei Variablen sein:

1.smtp_server 
2.auth_username 
3.auth_password 

Einzelheiten sind hier: Send mail and xampp

Bill H

Verwandte Themen