2016-06-27 115 views
3

我無法讓XAMPP使用mailtodisk.exe從PHP發送虛擬電子郵件(換句話說,將輸出保存到磁盤而不是真正發送郵件)。相反,無論我做什麼,郵件都會繼續正常發送。我試圖設置它不是真的發送郵件,而是使用XAMPP附帶的mailtodisk.exe實用程序生成它們的輸出。XAMPP - 無法發送虛假電子郵件

我的php.ini設置對我來說似乎是正確的(雖然我不知道sendmail_path是否需要在轉義引號中,因爲註釋的sendmail.exe的路徑是 - 無論如何,我都嘗試過兩種都沒有工作):

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

phpinfo()函數還示出了設置正確:

enter image description here

我嘗試使用的ini_set()直接從源代碼設置 「sendmail_path」 可變,我試圖改變「PHP的.ini-p rduction「和」php.ini-development「文件(儘管如果你問我的話毫無意義),我甚至完全刪除了包含文件夾的整個sendmail.exe,每當我改變一個設置時,我都重新啓動了Apache,它仍然正常發送郵件。我的系統運行的是Windows 10,XAMPP版本是3.2.2,php版本是5.6.14。

我在這裏錯過了什麼?

編輯:我忽略了提及它在開始時正常工作,當我第一次安裝XAMPP。然後在某個時候,我需要發送一封實際的郵件,所以我將php.ini改爲使用sendmail.exe,從此我從未設法恢復它。

+1

我相信可能使用'在Windows sendmail_path'是XAMPP定製,而不是部分官方PHP。在任何情況下,它都需要'mail()'(如果你使用了一個體面的郵件庫,那麼它會繞過你的本地sendmail可執行文件)。這是你如何發送消息? –

+0

嘗試PHP的'PhpMailer'庫,通過這個你可以設置你的gmail賬戶,並且也可以從本地發送郵件, –

+0

@ÁlvaroGonzález我使用SMTP身份驗證的PHPMailer發送我的郵件。這似乎確實是問題 - 我嘗試使用郵件()發送郵件,它的工作。要進一步測試這個。 – pazof

回答

1

如果您使用PHPMailer發送消息,您需要確保它不使用SMTP(如果它打開到遠程服務器的網絡連接,它將不會使用本地郵件程序)。要做到這一點,你需要呼叫isSMTP()因爲默認的方法是使用內置mail()功能:

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

當我爲我的網絡服務器做了這個,我運行了mailtodisk.exe,然後在根XAMPP文件夾中是郵件文件夾,並且電子郵件都在那裏。

我不必自己做任何配置,它只是工作。

+0

當我第一次安裝XAMPP時,它也適用於我。然後在某個時候我需要發送一封實際的郵件,所以我改變了php。ini使用sendmail.exe,並且從此我從未設法恢復它。 – pazof

+0

我的意思是,我總是可以重新安裝XAMPP,它可能會工作,我只是想找到現在究竟是什麼問題。 – pazof

0

也許嘗試配置外部SMTP服務器使用它與郵件例如使用谷歌Gmail。

+1

對不起,但這與要求的內容完全相反。 –

+0

的確如此。儘管可能是不尋常的,但問題不在於我無法發送電子郵件,問題是我不想發送電子郵件,我想將輸出保存到磁盤上。但它一直在發送郵件。 (有些人會祈禱我的情況:P) – pazof