我只是想知道如何在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();
答案 0 :(得分:10)
$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(Reference)。如果你使用1.x然后继续。 :P
修改强>
如评论中所述,如果你 使用2.x,你应该记住,CakeEmail(由EmailComponent使用)可以抛出异常。您可以使用CakePHP itself或通过尝试/捕获来处理它:
try {
if ( $this->Email->send() ) {
// Success
} else {
// Failure, without any exceptions
}
} catch ( Exception $e ) {
// Failure, with exception
}