我的控制器
App::uses('CakeEmail', 'Network/Email'); //before class begins
//function
public function contact(){
$email = new CakeEmail();
$email->config('smtp');
$email->from('me@gmail.com');
$email->to('you@gmail.com');
$email->subject('About');
$email->send('My message');
}
//Email.php in config folder
class EmailConfig {
public $smtp = array(
'transport' => 'Smtp',
'from' => 'me@gmail.com',
'host' => 'smtp.gmail.com',
'port' => 465,
//'timeout' => 30,
'username' => 'me@gmail.com',
'password' => '*****',
'client' => null,
'log' => false,
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
);
}
我得到的错误是
致命错误:超过30秒的最长执行时间 第222行的C:\ wamp \ www \ myproject \ lib \ Cake \ Network \ CakeSocket.php
我需要改变什么?
我甚至在Views / Users / contact中创建了视图文件。
我是否需要更改View / Email文件夹中的视图文件?
答案 0 :(得分:1)
您需要在php.ini文件中增加max_execution_time变量。
你不应该通过gmail发送电子邮件超时。您是否正确配置了smtp选项?
从蛋糕书 http://book.cakephp.org/2.0/en/core-utility-libraries/email.html
'您可以配置SSL SMTP服务器,例如GMail。为此,请将'ssl://'放在主机的前缀中,并相应地配置端口值。例如:“
<?php
class EmailConfig {
public $gmail = array(
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'username' => 'my@gmail.com',
'password' => 'secret',
'transport' => 'Smtp'
);
}
?>
答案 1 :(得分:0)
从您的操作中删除$email->from('me@gmail.com');
,然后重试。仅在电子邮件配置中指定 From 地址。然后看看它是否有效。
App::uses('CakeEmail', 'Network/Email'); //before class begins
//function
public function contact(){
$email = new CakeEmail();
$email->config('smtp');
$email->to('you@gmail.com');
$email->subject('About');
$email->send('My message');
}
//Email.php in config folder
class EmailConfig {
public $smtp = array(
'transport' => 'Smtp',
'from' => 'me@gmail.com',
'host' => 'ssl://smtp.gmail.com',
'port' => 465,
'timeout' => 60,
'username' => 'me@gmail.com',
'password' => '*****',
'client' => null,
'log' => false,
//'charset' => 'utf-8',
//'headerCharset' => 'utf-8',
);
}