Проверьте, истекло ли время ожидания соединения

Есть какой-то трюк, который я могу сделать, чтобы проверять если $ cake_email-> send () получает тайм-аут соединения? Например: если я получаю тайм-аут соединения, я использую специальный setFlash, предупреждающий пользователя об истечении времени ожидания, и перенаправляю его куда-нибудь.

В моем случае электронная почта это что-то необязательный, если отправит: приятно! Если это не так: нет проблем, просто нужно сообщить пользователю об этом

На самом деле я использую ЕСЛИ чтобы проверить, есть ли какая-то ошибка, но это не ловить ошибка тайм-аута

$cake_email = new CakeEmail('gmail');
$cake_email->emailFormat('html');
$cake_email->to($dados['Requisitante']['email']);
$cake_email->template('atualizacaoRequisicao', 'default');
$cake_email->subject('ATUALIZAÇÃO DE REQUISICÃO');
$cake_email->viewVars(array('dados' => $dados));
if($cake_email->send()){
$this->setFlash('A requisição foi salva e o email notificando a alteração foi enviado para '.$dados['Requisitante']['email'], 'flash_success');
} else {
$this->setFlash('A requisição foi alterada, porém o email nao foi enviado', 'flash_info');
}

0

Решение

STLMikeyКомментарий (пробуй / лови) решил мою проблему! Гораздо проще, чем я ожидал

Я просто приведу свой реальный код здесь, чтобы помочь кому-то еще с той же проблемой.

try {
if($cake_email->send()){
$this->setFlash('A requisição foi salva e o email notificando a alteração foi enviado para '.$dados['Requisitante']['email'], 'flash_success');
} else{
$this->setFlash('A requisição foi alterada, porém o email nao foi enviado', 'flash_info');
}
} catch(Exception $ex){
$this->setFlash('A requisição foi alterada, porém o email não foi enviado ('.$ex->getMessage().')<br>Você pode atualizar a requisição novamente para tentar reenviar o email', 'flash_info');
return $this->redirect(array('action' => 'edit', $dados['Requisicao']['id']));
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector