我在Component中有一个功能,可以使用Gmail发送联系人邮件。无论出于何种原因,我的工作网络阻止了与Gmail的安全连接,如果我使用我的手机网络,例如它工作正常,所以很明显电子邮件配置很好。我真正感兴趣的是捕获FatalErrorException,所以我可以向控制器返回false并在网站上显示错误消息,但我没有这样做。
这是我的组件代码:
try{
$correo = new Email();
$correo
->transport('mail')
->template('contacto_negocio')
->emailFormat('html')
->to($correoPara)
->from($correoDe, $nombreDe)
->replyTo($correoDe, $nombreDe)
->subject(__('Mensaje de contacto desde ').$sitio_nombre_secundario)
->viewVars([
'sitio_nombre_secundario'=>$sitio_nombre_secundario,
'sitio_nombre' => $sitio_nombre,
'nombreDe'=>$nombreDe,
'correoDe'=>$correoDe,
'mensaje'=>$mensaje
])
->send();
} catch (FatalErrorException $ex){
return false;
} catch(SocketException $ex){
return false;
}catch (\Exception $ex) {
return false;
}
控制器中的代码:
if($this->Correo->contactoNegocio($correo, $nombreDe, $correoDe, $mensaje)){
$respuesta = ['cod'=>1, 'mensaje'=>'Message sent'];
}else{
$respuesta = ['cod'=>0, 'mensaje'=>'<span style="color:red; font-size: 12px;">Message not sent.<span>'];
}
我错过了什么?
答案 0 :(得分:1)
你的代码没有达到它可以捕获FatalErrorException
的程度,因为执行时间错误或多或少是一个自己处理的关闭函数的结果。
你可以增加限制或尝试修改他们的关机方法,但你不能抓住&#34;这是一个例外,因为它在catch块之前停止执行。