2016-01-22 41 views
0

我使用CakePHP的3.0,这是我的代码CakePHP的3.X如何检查邮件发送或不

$email = new Email(); 
$siteEmail = "[email protected]"; 
$subject = "Message subject"; 
$email = new Email(); 
$email->from($siteEmail) 
->to($userEmail) 
->subject($subject); 

$response = $email->send($message); 
if($response) { 
    $this->Flash->success(__('mail send')); 
} else { 
    $this->Flash->error(__('mail send fail')); 
} 

寄送邮件,但如何,如果我打印$响应变量检查邮件发送或不比它的打印所有邮件相关数据的阵列喜欢从消息和主题没有响应像消息发送或不是如何检查,以便打印成功或失败时使用的Flash消息,如果我使用如上所示它总是返回true或者邮件是否发送

谢谢

回答

1

发送失败a导致异常,\Cake\Network\Exception\SocketException是准确的,因此请将您的send()调用写入a try block,并评估可能的捕获异常。

use Cake\Network\Exception\SocketException; 

// ... 

try { 
    $email->send($message); 
    // success 
} catch (SocketException $exception) { 
    // failure 
} 
+0

我用这一点,但并没有解决我的问题还是始终显示成功messaage –

+0

@DeepakGoyal好那么有可能是没有错误的是(蛋糕),PHP将能够注意到。 – ndm

+0

@DeepakGoyal如果这不是一个错误,那么问题就出在你的应用程序之外,所以你将无法处理这种失败。就Cake而言,它已经成功地完成了它的一切。 – drmonkeyninja