我使用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,无论是否发送邮件
谢谢
答案 0 :(得分:1)
发送失败导致异常,\Cake\Network\Exception\SocketException
准确无误,因此请将send()
电话打包在a try
block中,并评估可能的捕获异常。
use Cake\Network\Exception\SocketException;
// ...
try {
$email->send($message);
// success
} catch (SocketException $exception) {
// failure
}