使用CakePHP的电子邮件组件

时间:2009-10-12 15:27:54

标签: email cakephp components

我尝试通过CakePHP的电子邮件组件发送简单的电子邮件。我正在使用来自cookbook文档的以下代码:

$this->Email->from    = 'Irgendjemand <irgendjemand@example.com>';
$this->Email->to      = 'Irgendjemand Anderes <irgendjemand.anderes@example.com>';
$this->Email->subject = 'Test';
$this->Email->send('Dies ist der Nachrichtenrumpf!');

send() - 方法只返回值为 false 的布尔值 - 但不会出现错误或警告。

有人有解决方案吗?

3 个答案:

答案 0 :(得分:3)

您是否尝试过更改投放选项?有三个选项:mailsmtpdebug

$this->Email->delivery = 'debug';
$this->Email->send('test message');
debug($this->Session->read('Message.email'));

答案 1 :(得分:3)

您可以使用EMail进行调试。将交付设置为debug,电子邮件消息将设置为Session.message:

if (Configure::read('debug') > 1) {
    $this->Email->delivery = 'debug';
}
$ret = $this->Email->send();
if (Configure::read('debug') > 1) {
    pr($this->Session->read('Message.email'));
}

答案 2 :(得分:0)

你在哪个操作系统?如果是Windows,this note可能会引起关注:

  

注意:mail()的Windows实现在很多方面与Unix实现有所不同   ...
  因此,to参数不应是
形式的地址   “Something <someone@example.com>”。与MTA通话时,mail命令可能无法正确解析。

其次,可能只是因为垃圾邮件保护而没有邮件服务器接受来自本地计算机的外发邮件。我经常看到相同的mail()函数在本地不起作用,但一旦上传到可靠的服务器就可以正常工作。在这种情况下,您可以尝试使用经过身份验证的邮件中继(SMTP)。