我正在运行Cakephp 2.4.3,并尝试使用CakeEmail发送电子邮件。
我的UsersController顶部有以下代码:
App::uses('AppController','Controller','CakeEmail','Network/Email');
控制器中的此功能:
function send_email(){
try{
$email = new CakeEmail('test');
$email->from('[email protected]');
$email->to('[email protected]');
$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
);
当我转到URL时:mysite.com/users/send_email
它说“成功”,调试日志说:
2014-05-30 22:49:43 Debug:
From: [email protected]
X-Mailer: CakePHP Email
Date: Fri, 30 May 2014 22:49:43 +0000
Message-ID: <[email protected]>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Test Message
但我从来没有收到一封电子邮件进入我的Gmail帐户。我也检查了我的垃圾邮件文件夹。可能是问题所在,我还可以如何调试呢?
更新:
我的蛋糕应用程序托管在网络上。我尝试在其他域中使用其他电子邮件地址,并将电子邮件代码更改为此:
try{
if(mail('[email protected]','Test Subject','Test Message'))
echo 'Success';
else echo 'Failure without Exception';
} catch (Exception $e){
echo 'Failure with Exception';
}
但结果没有改变。
从本地主机发送邮件通常不起作用。您可以尝试在设置中设置端口,但是您的isp可能会阻止该端口。
只需检查规格即可:http : //book.cakephp.org/2.0/en/core-utility-libraries/email.html
看来您的new
声明中不应包含测试内容:
$Email = new CakeEmail();
要进行调试,您可以尝试向其他主机(而非gmail)发送电子邮件。您也可以尝试使用默认的phpmail()
函数,该函数实际上非常易于使用,并且与cake的布局非常相似,这并不奇怪。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句