繁体   English   中英

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

[英]Cakephp email sent but not received

我正在运行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';
}

但结果并没有改变。

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

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

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

$Email = new CakeEmail();

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM