【发布时间】:2014-07-20 18:50:56
【问题描述】:
我正在运行 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';
}
但结果没有改变。
【问题讨论】:
-
尝试使用 gmail 的疑难解答:support.google.com/mail/troubleshooter/2935079
-
我刚刚尝试了另一个域中的另一个电子邮件地址并得到了相同的结果
-
您使用什么传输方式?例如,这是我的 gmail 配置(我认为它有效我现在通过 AWSSES 使用 smtp)
public $gmail = array('host' => 'ssl://smtp.gmail.com' ,'port' => 465 ,'username' => 'foo@gmail.com' ,'password' => 'foobar','transport' => 'Smtp'); -
不确定.. 无论 Cake 默认是什么。我最初尝试了 SMTP 设置,但它不起作用,所以我将其简化为这个。