Cakephp电子邮件错误

时间:2012-06-18 14:28:59

标签: cakephp

我的控制器

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文件夹中的视图文件?

2 个答案:

答案 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',
    ); 
}