【问题标题】:Check for a 'Connection timed out'检查“连接超时”
【发布时间】:2014-10-23 19:27:59
【问题描述】:

如果 $cake_email->send() 连接超时,我可以做一些技巧来检查?例如:如果我收到连接超时,我会使用特定的 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');
}

【问题讨论】:

  • 你考虑过使用 try catch 块吗?
  • 是的,伙计!这给了我想要的结果!
  • 太棒了!很高兴你成功了!

标签: php cakephp frameworks cakephp-2.0 cakeemail


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-30
    • 2012-07-18
    • 2013-05-15
    • 2010-11-26
    • 2022-01-21
    相关资源
    最近更新 更多