簡體   English   中英

檢查“連接超時”

[英]Check for a 'Connection timed out'

我可以采取一些技巧來檢查 $ cake_email-> send()是否獲得連接超時?例如:如果我獲得連接超時,我將使用especific setFlash來警告用戶有關超時並將其重定向到某個地方。

就我而言,電子郵件是可選的 ,如果它發送:很好! 如果沒有:沒問題,只需要讓用戶知道

實際上,我正在使用IF來檢查它是否出現一些錯誤,但這並沒有捕獲超時錯誤

$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');
}

STLMikey的評論(try / catch)解決了我的問題! 比我預期的簡單得多

為了幫助其他有同樣問題的人,我將在此處輸入我的實際代碼。

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']));
}

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM