如何使用cakephp电子邮件组件发送电子邮件?

时间:2011-02-07 12:51:00

标签: cakephp-1.3

我尝试使用cakephp电子邮件组件发送邮件。但是邮件没有发送,也没有显示任何错误消息。我需要设置任何其他参数吗?这是我的代码片段:

            $this->Email->from='<xyz@yahoo.com>';
    $this->Email->to='<abc@gmail.com>';
    $this->Email->sendAs='both';
    $this->Email->delivery = 'debug';
    $this->Email->send();

3 个答案:

答案 0 :(得分:5)

你应该尝试改变

$this->Email->delivery = 'debug';

$this->Email->delivery = 'mail';

了解详情: http://api.cakephp.org/class/email-component

答案 1 :(得分:0)

尝试更改

$this->Email->from='<xyz@yahoo.com>';
$this->Email->to='<abc@gmail.com>';

$this->Email->from='xyz@yahoo.com';
$this->Email->to='abc@gmail.com';

刚才我用它解决了我的问题。当交付设置为mail时,蛋糕不会发送消息,但使用谷歌SMTP它可以正常工作。 Google SMTP需要的地址与Name <email@example.com>相同。当我删除Name<>后,它开始正式发送电子邮件,并将投放方式设置为mail

顺便说一句,它很可能不会在localhost上运行(因为你可能是垃圾邮件发送者或其他什么),所以尝试将你的应用程序上传到服务器,然后发送邮件。

编辑:还将发送方式更改为邮件。但是,如果您想查看邮件的调试,则需要在设置调试传递方法时在视图中执行echo $this->Session->flash('email');

答案 2 :(得分:0)

尝试并替换它:

$this->Email->from='<xyz@yahoo.com>';
$this->Email->to='<abc@gmail.com>';

有了这个:

$this->Email->from='XYZ <xyz@yahoo.com>';
$this->Email->to='ABC <abc@gmail.com>';

我遇到了类似的问题,如果您没有指定名称(XYZ,ABC),则不会发送电子邮件,也不会显示错误。我当时正在使用gmail的SMTP服务器,希望这会有所帮助。

此处还有关于电子邮件的Cookbook文章:http://book.cakephp.org/view/269/Sending-a-basic-message