Я запускаю сценарий цикла в командной строке PHP, который отправляет электронные письма клиентам, использующим PHPMailer. Проблема, которую я получаю, заключается в том, что скрипт командной строки выходит, когда PHPMailer возвращает false.PHP-скрипт командной строки выходит на false
Вот сценарий псевдокод:
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()
возвращает ложь, скрипт останавливается и выходит. Является ли это ожидаемым поведением PHP в командной строке? Если это так, есть ли способ сказать PHP не останавливаться, когда он получает ложь?
Благодарим за помощь.
Вы уверены, что send() является причиной выхода? Это также может быть тайм-аут сценария или ошибка в состоянии вашего цикла while. – Thirler
Мои тесты показывают, что сценарий завершается только тогда, когда он встречает часть отказа в цикле. – Nirmal
Вы запустили скрипт с error_reporting = E_ALL и display_errors = true (или следите за ошибкой.log)? – VolkerK