2014-03-25 57 views
0

我需要製作一個安裝腳本,我需要檢查郵件服務器是否配置正確。如何檢查郵件服務器是否已配置?

如果不是,則該消息應堅持啓用它。

有人可以告訴我該如何檢查?

我試圖製作郵件腳本並使用PHP CLI運行它。

它返回true,但從未收到任何郵件。

+0

看看這裏http://www.php.net/manual/en/mail.configuration.php – Abhishek

回答

0

基本上你沒有完美的方式來檢查服務器是否配置爲正確發送郵件。

您可以檢查php.ini參數,例如sendmail_path,如果這些代表一些正確的值。你可以試試,太發送測試郵件,但讀the manual concerning return value of the function

返回true如果郵件被成功接受交付,FALSE 否則。

重要的是要注意,僅僅因爲郵件被接受爲 交付,它並不意味着郵件實際上會到達預期的 目的地。

含義如果mail()返回true,這並不表示服務器配置正確。郵件可能被接受發送,但MTA(郵件傳輸代理)實際連接到互聯網可能有問題,或者可能會崩潰,或者...

您可能想要使用第三方庫通過SMTP直接連接到MTA,不使用PHP內部函數mail。這個第三方庫可能提供一個測試方法來檢查這個SMTP服務器是否可以訪問。雖然這似乎提供更合適的反饋,如果它配置正確,實際上也是有限的。在這個配置中提供的SMTP服務器可能是本地的。這一個將接受郵件發送,但這並不能保證這些郵件實際發送。

這可能看起來像一個不滿意的答案,但實際上問題並不那麼嚴重。大多數共享主機正確設置其郵件環境。如果有專用服務器,則可以假定所有者能夠自行解決郵件服務器的問題。

如果您檢查sendmail_path,然後在輸出信息時發送郵件(檢查返回值)到測試郵件地址,那麼必須檢查郵件服務器配置,如果郵件沒有正確到達,應該足夠。

請參閱my other posting關於如何檢查郵件是否真的被髮送。那裏的信息也適用於PHP。

相關問題