2016-06-27 5 views
3

Ich kann XAMPP nicht dazu bringen, eine Pseudo-E-Mail von PHP mit mailtodisk.exe zu senden (mit anderen Worten, um die Ausgabe auf der Festplatte zu speichern, anstatt die E-Mail wirklich zu senden). Stattdessen werden die Mails, egal was ich mache, normal gesendet. Ich versuche es so einzurichten, dass ich die Mails nicht wirklich sende, sondern ihre Ausgabe mit dem Dienstprogramm mailtodisk.exe, das mit XAMPP ausgeliefert wird, erzeuge.XAMPP - keine Dummy-E-Mails senden

Meine php.ini-Einstellungen scheinen mir korrekt zu sein (obwohl ich nicht weiß, ob der sendmail_path in maskierten Anführungszeichen stehen muss, wie der kommentierte sendmail.exe-Pfad ist - in jedem Fall habe ich beide versucht und keiner funktioniert):

; sendmail_path = "\"C:\xampp\sendmail\sendmail.exe\" -t" 
sendmail_path="C:\xampp\mailtodisk\mailtodisk.exe" 

phpinfo() zeigt auch, dass die Einstellungen richtig sind:

enter image description here

I die "sendmail_path" Variable ini_set direkt aus dem Quellcode versucht Einstellung() habe ich versucht, die „PHP zu verändern .ini-p roduction "und" php.ini-development "Dateien auch (obwohl sinnlos, wenn Sie mich fragen), löschte ich sogar die gesamte sendmail.exe Ordner komplett, ich habe Apache jedes Mal neu gestartet, wenn ich eine Einstellung änderte, und es sendet immer noch normal Mails. Mein System läuft Windows 10, XAMPP-Version ist 3.2.2 und PHP-Version ist 5.6.14.

Was fehlt mir hier?

EDIT: Ich vernachlässige zu erwähnen, dass es zu Beginn, wenn ich XAMPP installiert wurde, richtig funktioniert. Dann musste ich irgendwann eine aktuelle Mail senden, also habe ich die php.ini geändert, um sendmail.exe zu verwenden, und ich habe es seitdem nie wiederhergestellt.

+1

Ich glaube, dass die Möglichkeit, zu verwenden 'sendmail_path' auf Windows ist eine Xampp Anpassung, nicht Teil offizielles PHP. In jedem Fall erfordert es 'mail()' (wenn Sie eine anständige Mail-Bibliothek verwenden, die SMTP spricht, wird Ihre lokale sendmail-Programmdatei sowieso umgangen). Schicken Sie Ihre Nachrichten so? –

+0

Probieren Sie die 'PhpMailer' Bibliothek von PHP aus, damit Sie Ihr Google Mail Konto einrichten können und auch E-Mails von localhost senden können, –

+0

@ ÁlvaroGonzález Ich benutze PHPMailer mit SMTP Authentifizierung um meine E-Mails zu versenden. Das scheint in der Tat das Problem zu sein - ich habe versucht, eine Mail mit Mail() zu senden und es hat funktioniert. Ich werde das weiter testen. – pazof

Antwort

1

Wenn Sie PHPMailer verwenden, um Ihre Nachrichten zu senden, müssen Sie sicherstellen, dass SMTP nicht verwendet wird (wenn es eine Netzwerkverbindung zu einem Remoteserver öffnet, wird es Ihren lokalen Mailer nicht verwenden). Um dies zu tun müssen Sie nicht Anruf isSMTP() weil die Standardmethode verwenden integrierte in mail() Funktion ist:

/** 
* Which method to use to send mail. 
* Options: "mail", "sendmail", or "smtp". 
* @type string 
*/ 
public $Mailer = 'mail'; 
0

Als ich dies für meinen Webserver getan habe, habe ich die mailtodisk.exe ausgeführt, und dann im root XAMPP-Ordner war der Mail-Ordner und die E-Mails waren alle drin.

Ich musste selbst keine Konfiguration machen, es hat einfach funktioniert.

+0

Es funktionierte auch für mich, als ich XAMPP zum ersten Mal installierte. Dann musste ich irgendwann eine echte Mail schicken, also habe ich den PHP geändert.Ini, sendmail.exe zu verwenden, und ich schaffte es nie, es seitdem wieder herzustellen. – pazof

+0

Ich meine, ich könnte immer nur XAMPP neu installieren und es wird wahrscheinlich funktionieren, ich will nur jetzt finden, was in der Welt ist falsch damit. – pazof

0

Vielleicht versuchen, externen SMTP-Server zu konfigurieren, um es mit Mail zum Beispiel mit Google Mail zu verwenden.

+1

Sorry, aber das ist das genaue Gegenteil von dem, was gefragt wird. –

+0

Wahr, dass. Ungewöhnlich, obwohl es das Problem ist, dass ich keine E-Mails senden kann, das Problem ist, dass ich keine E-Mails senden möchte, sondern stattdessen die Ausgabe auf der Festplatte speichern möchte. Aber es sendet die Mails normal weiter. (Einige Leute würden aber beten, dass sie in meiner Situation sind: P) – pazof