CakePHP电子邮件组件检查是否发送电子邮件
我只是想知道如何检查电子邮件是否已发送,或者何时在CakePHP中使用EmailComponent时失败?CakePHP电子邮件组件检查是否发送电子邮件
比如我目前使用这种方式:
$this->Email->from='<[email protected]>';
$this->Email->to='<[email protected]>';
$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已被弃用(Reference)。如果你使用1.x然后继续。 :P
编辑:
如果你是使用2.x的,你应该记住,CakeEmail(这是使用EmailComponent)可引发异常的意见如前所述,。您可以CakePHP itself或在一个try/catch折腾处理:
try {
if ($this->Email->send()) {
// Success
} else {
// Failure, without any exceptions
}
} catch (Exception $e) {
// Failure, with exception
}
这不应该需要一个try catch块吗?由于它可能会引发异常......文档指出:“我们建议您使用try/catch来确保您的消息正确传递。” – mark 2013-03-27 09:48:18
@mark你能指出那个文档吗?你可能有一个有效的点,但我找不到。如果我查看源代码,EmailComponent自身似乎不会自行抛出异常。 – thaJeztah 2013-03-27 10:39:53
电子邮件组件只是包装了CakeEmail的send()函数。因此它也会抛出异常,如果没有正确捕捉,会产生很多麻烦。它也在这里:http://book.cakephp.org/2.0/en/core-libraries/components/email.html – mark 2013-03-27 10:50:11
为了得到正确的答案,你总是* *需要提供您正在使用CakePHP的版本! – mark 2013-03-27 10:51:03