3

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

1 回答 1

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 已弃用(参考)。如果您使用的是 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
}
于 2013-03-27T00:13:45.393 回答