我正在PHP命令行中運行循環腳本,該腳本使用PHPMailer將電子郵件發送給客戶。我收到的問題是,當PHPMailer返回false時,命令行腳本將退出。PHP命令行腳本在假狀態下退出
這裏是腳本的僞代碼:
while(the loop is valid){
if(mail ID exists){
set_time_limit(30);
..compose mail..
if($mail->Send()){
..Mark as success in database..
usleep(10000);
} else {
..Mark as failure in database..
usleep(10000);
}
}
..continue loop..
}
如果$mail->Send()
返回false時,腳本停止並退出。這是PHP在命令行中的預期行爲嗎?如果是這樣的話,有沒有什麼辦法可以讓PHP在收到錯誤時不要停下來?
謝謝你的幫助。
你確定send()是退出的原因嗎?它也可能是腳本超時或在while循環的情況下發生錯誤。 – Thirler 2010-02-08 09:48:26
我的測試顯示腳本只有在遇到循環的失敗部分時纔會退出。 – Nirmal 2010-02-08 09:52:46
您是否使用error_reporting = E_ALL和display_errors = true(或留意error.log)運行腳本? – VolkerK 2010-02-08 09:53:41