2011-06-07 67 views
2

這是否有任何理由會發送重複的電子郵件?我有一個只有這個代碼的PHP頁面,每次運行它時,都會向我發送兩封電子郵件。php郵件副本

<?php 
    mail("[email protected]", "test", "test"); 
?> 
+0

最新的代碼是什麼? (您是否多次刷新頁面?) – Neal 2011-06-07 16:31:02

+0

這是完整的代碼。我有另外一個更長的表單,我注意到了這個行爲,並且作爲一個調試測試,我創建了一個單獨的test.php腳本來查看mail()是否可以正常工作。 不,沒刷新兩次。 – cdmo 2011-06-09 12:42:02

回答

1

感謝您的輸入。

事實證明,這是一個瀏覽器插件的問題,具體的YSlow 2.1.0在Firefox 4.0.1

我問我們的服務器管理器查找到的問題,他報告說,日誌顯示了兩個安打每我去了網頁。他試圖將它加載到他的機器上,並且腳本正常工作,只加載一次。我嘗試過使用Chrome瀏覽器並且運行正常,只發送一次郵件。我經歷了我的各種附加組件,並最終將ySlow隔離爲罪魁禍首。

不知道這是否意味着ySlow正在加載每一頁兩次或什麼,但我將不得不保持禁用它。如果有人對ySlow解決問題有什麼建議,請告訴我。

再次感謝。

1

也許你的頁面加載的兩倍,因此執行代碼兩次......你可以嘗試一些限制,像

if ($sent == '0') { 
    mail("[email protected]", "test", "test"); 
    $sent = 1; 
} 

的東西這是一個簡單的PHP頁面,或CMS的一部分?也許有些模塊可能與您的網頁發生衝突......

+0

這是一個簡單的PHP頁面,沒有CMS。 – cdmo 2011-06-09 12:43:51

+1

很高興你發現什麼是錯的;) – tzoukos 2011-06-13 10:17:02

0

你可以嘗試這樣

<?php 
    mail("[email protected]", "test", "test"); 
    exit("sent"); 
?> 

簡單地把一個「退出」存在,並再次嘗試調試。如果它仍然發送兩次,也許是服務器問題或可能是'php.ini'中的[郵件功能](sendmail_from & sendmail_path)

+0

試過這個,它打印出來了,但我還是收到了兩封電子郵件確認。我也嘗試了不同的電子郵件地址,仍然是同樣的問題。我會研究服務器設置。 – cdmo 2011-06-09 12:45:54

+0

sendmail_from = \t本地值:無值,主值:無值。 sendmail_path = \t本地值:/ local/apache22/bin/phpmail-wrapper \t主值:/ local/apache22/bin/phpmail-wrapper。這對我來說很普通,你是否看到任何問題? – cdmo 2011-06-09 12:49:54

0

以防萬一,我發現我的代碼有一個命令有餘,它產生的兩封電子郵件發送:

<?php  
    $headers .= 'Bcc: [email protected]' . "\r\n"; 
?> 

我刪除了這個「\ r \ n」,它解決了這一麻煩。