cakephp 3.x如何检查邮件是否发送

时间:2016-01-22 05:05:35

标签: email cakephp response cakephp-3.0

我使用cakephp 3.0发送邮件这是我的代码

$email = new Email();
$siteEmail = "test@example.com";
$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'));
}

但如果我打印$ response变量而不是打印所有邮件相关数据的数组,如果从邮件和主题没有响应,如果发送或不发送如何检查以便打印,如何检查是否发送邮件成功或失败的flash消息,当我使用if else如上所示,它总是返回true,无论是否发送邮件

谢谢

1 个答案:

答案 0 :(得分:1)

发送失败导致异常,\Cake\Network\Exception\SocketException准确无误,因此请将send()电话打包在a try block中,并评估可能的捕获异常。

use Cake\Network\Exception\SocketException;

// ...

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