已发送但未收到Cakephp电子邮件

时间:2014-05-30 22:30:11

标签: php email cakephp

我正在运行Cakephp 2.4.3,我正在尝试使用CakeEmail发送电子邮件。

我在UsersController的顶部有这个代码:

App::uses('AppController','Controller','CakeEmail','Network/Email');

Controller中的这个功能:

function send_email(){
    try{
        $email = new CakeEmail('test');
        $email->from('sender@example.com');
        $email->to('me@gmail.com');
        $email->subject('Test');
        if($email->send('Test Message'))
            echo 'Success';
        else echo 'Failure without Exception';
    } catch (Exception $e){
        echo 'Failure with Exception';
    }
}

,这在Config / email.php

public $test = array(
  'log' => true
);

当我转到网址:mysite.com/users/send_email

它说“成功”,调试日志说:

2014-05-30 22:49:43 Debug: 
From: sender@example.com
X-Mailer: CakePHP Email
Date: Fri, 30 May 2014 22:49:43 +0000
Message-ID: <53890b07e3b44b2b88132a62ad2deb05@mysite.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Test Message

但我从未收到进入我的Gmail帐户的电子邮件。我也检查了我的垃圾邮件文件夹。可能是什么问题以及我可以如何调试它?

更新:

我的蛋糕应用程序正在网络上托管。我尝试在其他域使用不同的电子邮件地址,并将电子邮件代码更改为:

try{
    if(mail('xxx@iioengine.com','Test Subject','Test Message'))
        echo 'Success';
    else echo 'Failure without Exception';
} catch (Exception $e){
    echo 'Failure with Exception';
}

但结果没有改变。

1 个答案:

答案 0 :(得分:3)

发送邮件通常不会从localhost发挥作用。您可以尝试在设置中设置端口,但您的isp可能会阻止端口。

只需查看规格:http://book.cakephp.org/2.0/en/core-utility-libraries/email.html

看起来你的new声明似乎不应该在里面进行测试:

$Email = new CakeEmail();

要进行调试,您可以尝试向其他主机(不是gmail)发送电子邮件。您也可以尝试使用默认的php mail()功能,这实际上非常简单易用,与蛋糕的布局非常相似,这并不奇怪。

http://php.net/manual/en/function.mail.php