CakePHP电子邮件组件检查是否已发送电子邮件

时间:2013-03-27 00:02:31

标签: email cakephp

我只是想知道如何在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();

1 个答案:

答案 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
}