检查发送邮件是否成功/不成功在CakePHP中?
问题描述:
如何检查在CakePHP中发送电子邮件是否成功?检查发送邮件是否成功/不成功在CakePHP中?
我可以发送电子邮件没有问题,但我希望能够处理错误,如果它发送失败。我怎样才能做到这一点?
这是我迄今所做的:
$email = new CakeEmail();
$email->from(array('email' => 'title'));
$email->to($to);
$email->subject('Account activation');
$activate_url = 'http://' . env('SERVER_NAME') .'/cakephp/users/activate/'.$id.'/'.$token;
$message = "Thank you for signing up. Click on the activation link to activate your account \n";
return $email->send($message.$activate_url);
答
你可以使用try catch块,检查邮件是否被成功移交给MTA,你真的不能检测或检查邮件已成功发送给收件人。这是另一种情况。
try {
if ($this->Email->send()) {
// Success
} else {
// Failure, without any exceptions
}
} catch (Exception $e) {
// Failure, with exception
}
或者如果设置回复到您的邮件标题,然后你可以检查任何退回的邮件,这将让你有把握,一个消息尚未交付说。
您是否使用了try catch? – 2013-04-10 16:58:23
充其量你可以检测到邮件是否已交给smtp服务器正确。您不能直接检测接收服务器是否拒绝/发送垃圾邮件,或者您的smtp服务器是否延迟/排队邮件。 – 2013-04-10 16:58:37