我只是想知道在 CakePHP 中使用 EmailComponent 时如何检查电子邮件是否已发送或失败?
例如,我目前以这种方式使用它:
$this->Email->from='<xyz@yahoo.com>';
$this->Email->to='<abc@gmail.com>';
$this->Email->sendAs='both';
$this->Email->delivery = 'debug';
$this->Email->send();
$this->Email->send()
如果发送成功,应该返回 true。您可以尝试以下方法:
if ( $this->Email->send() ) {
// Success
} else {
// Failure
}
参考:
http://api.cakephp.org/2.3/class-EmailComponent.html
注意:如果您使用的是 CakePHP 2.x,您可以尝试使用 CakeEmail 类;EmailComponent 已弃用(参考)。如果您使用的是 1.x,请继续。:p
编辑:
如评论中所述,如果您使用的是2.x,则应记住 CakeEmail(由 EmailComponent 使用)可能会引发异常。您可以使用CakePHP 本身或通过使用 try/catch 来处理它:
try {
if ( $this->Email->send() ) {
// Success
} else {
// Failure, without any exceptions
}
} catch ( Exception $e ) {
// Failure, with exception
}