我每天發送一封郵件,每天發送給人員列表。我使用PHP和PHPMailer對象來發送電子郵件。SMTP錯誤問題 - PHPMailer
這一直工作正常,直到今天,當我沒有收到一封電子郵件(試驗),我檢查日誌以發現間歇我得到SMTP錯誤從
回來之類的mail->Send();
方法對一些人 - 不是全部。
除了名稱和電子郵件地址外,所有電子郵件的大小(字符長度)完全相同。
從
$mail->ErrorInfo;
錯誤細節包括這兩個錯誤
SMTP錯誤:數據不被接受。 <p> SMTP服務器錯誤:2.1.5好的
SMTP錯誤:數據未被接受。 < p & gtSMTP服務器錯誤:</P >
爲什麼有斷p標籤錯誤消息我不知道 - 也就是爲什麼第一個錯誤中有OK?
但是循環中的其他人有電子郵件出來罰款。
此外,當我把腳本放入測試模式時,只有這些失敗通過電子郵件發送出去(所以一次腳本調用=一封電子郵件給一個人),我發現沒有問題,人們得到了他們的電子郵件。
現在我問技術支持是什麼意思,並回到「谷歌它」,我無法找到任何地方的錯誤2.1.5。我真的不明白爲什麼它在錯誤之後說得好。
作爲明天的測試,我對失敗的發送進行了一次測試,然後再次嘗試進行5秒的測試。
我不知道這是否會有所幫助,但我認爲也許我的SMTP服務器與我的腳本(Rackspace VPS Linux)位於同一臺服務器上,並且存在臨時連接問題,因此在這種情況下睡眠可能非常方便。
這是我第一次遇到這個問題,我沒有重新啓動APACHE或我的服務器(或郵件服務器),在這個腳本之前我有另外一個發出403電子郵件沒有任何問題。
這將是很高興知道錯誤是什麼以及它爲什麼發生。
羅布
如果錯誤不是真的錯誤,那麼消息重試之間的睡眠也會有所幫助。我在看的響應代碼頁面沒有顯示2.1.5,所以我沒有看到任何提及。如果2表示「目標地址有效」,那麼.1和.5是什麼意思?無論如何要找出答案。難道它只是一個淹沒郵件服務器的情況嗎?在這種情況下,每個電子郵件發送和重試幫助之間會有更長的超時時間? – MonkeyMagix 2014-11-19 10:46:19
它以「2」開頭表示它是成功代碼(請參閱第2節)。它後面的'.1'表示它是一個地址狀態(也是第2節),整個'* .1.5'模式在3.2節列出。並非所有的前綴和狀態組合都是有意義的 - 例如5.1.7對垃圾郵件過濾器的拒絕是有意義的,但是對於被垃圾郵件過濾器接受,2.1.7沒有任何意義! – Synchro 2014-11-19 15:01:39
你可以嘗試設置'$ mail-> SingleTo = true;',它會分別發送每條消息(如果你設置了多個'to'地址),這可能會給你一個更精確的反饋。您也可以嘗試打開/關閉SMTPKeepAlive。除非你發送大量數據(數千個),否則增加延遲可能無濟於事。 – Synchro 2014-11-19 15:05:17