2012-03-28 39 views
0

我有一個奇怪的郵件問題。具體來說,我有一個腳本來檢查請求標題,如果它匹配某個字符串,它會使用mail()發送郵件。這是一個基本的郵件,標準的'到','主題','內容','來自'字段,沒有別的。PHP郵件放緩掛頁

郵件確實發送正常,但它會導致頁面加載掛起30秒以上(即使在生成的HTML之外使用mail())時間太長。我看到一些建議將郵件轉儲到數據庫並在其上運行cron作業,但在這種情況下這不是一個真正的選擇。

基本上,我想知道是否有辦法強制一個PHP腳本(頁面加載)完成沒有mail()完成或一些配置我應該檢查,可能會導致這需要這麼長時間。

回答

0

我在RHEL 4服務器上遇到過類似的問題,發現有兩種解決方案:使用PEAR郵件或使用外部smtp服務器(在我的情況下爲gmail)。發送簡單的聯繫表格從30秒到50秒不到一秒鐘。

我從來沒有發現什麼原因造成的?

0

從未有過的問題mail(),我覺得很可靠。

  • 問題發生在所有的電子郵件或特定的?
  • 您是否嘗試過在另一臺服務器上測試代碼?
  • 使用PHPmailer()here作爲替代(如果可能)與SMTP。 Here是一個很好的教程。


+0

的問題。服務器設置本身是「有趣的」,至少可以說,如果服務器限制是導致速度下降的原因,我不會感到驚訝。我不願意重複過多的服務器本身,因爲它已經在4-6個月內完成了更換 - 更重要的是「現在就完成這項工作」,而不是其他任何事情。 – SickHippie 2012-03-29 16:19:19

0

當我有類似的問題,這是由於缺乏正規主機名引起的。

/var/log/mail.err:如果你看到

的sendmail [31575]:無法出線我自己的域名(本地主機) - 使用短名」

那麼這就是它

然後,你需要:

  1. 您的主機名添加到/etc/hosts如:your.ip.address your.host.name
  2. 將主機名/etc/hostname爲:your.host.name
  3. 重新啓動發生在使用`郵件()`函數任何PHP創建電子郵件