2009-10-12 52 views
1

我尝试通过CakePHP的Email组件发送一个简单的电子邮件。我使用下面的代码从食谱文档:使用CakePHP的Email组件

$this->Email->from = 'Irgendjemand <[email protected]>'; 
$this->Email->to  = 'Irgendjemand Anderes <[email protected]>'; 
$this->Email->subject = 'Test'; 
$this->Email->send('Dies ist der Nachrichtenrumpf!'); 

的发送() - 但没有出现错误或警告 - 方法不只是与价值返回一个布尔值。

有人有解决方案吗?

+0

PHP的香草邮件()函数做什么?这是共享主机环境吗?你的smtp服务器在哪里?这是如何配置的?需要更多信息... – 2009-10-12 17:13:39

回答

3

您是否尝试更改交付选项?有三种选择:mailsmtpdebug

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

你在哪个操作系统上?如果Windows,this note可能感兴趣的:

注:Windows实现的mail()从UNIX实现许多方面有所不同。
...
因此,to参数不应该是
Something <[email protected]>”形式的地址。在与MTA交谈时,邮件命令可能无法正确解析。

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

3

您可以使用EMail进行调试。设置交付调试和电子邮件将被设置为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')); 
}