Cakephp电子邮件错误

Cakephp电子邮件错误,cakephp,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@gmai

我的控制器

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秒的最大执行时间 C:\wamp\www\myproject\lib\Cake\Network\CakeSocket.php,第222行

我需要改变什么

我甚至在Views/Users/contact中创建了视图文件


是否需要更改view/Email文件夹中的view文件?

您需要增加php.ini文件中的max\u execution\u time变量

不过,你不应该错过通过gmail发送电子邮件的时机。您是否正确配置了smtp选项

从蛋糕册上

“您可以配置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'
    );
}
?>

从邮件中删除
$email->me@gmail.com');从您的操作中删除,然后重试。仅在电子邮件配置中指定发件人地址。然后看看它是否有效

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

也增加了时间,但仍然无法发送电子邮件。这给了我同样的错误。我在这里遗漏了什么?是的,我确实遵循了烹饪书中的基本步骤。如果我遵循这些步骤,它会说无法发送电子邮件,则发生了内部错误。如果我使用'ssl://smtp.gmail.com'它表示未配置ssl。堆栈跟踪核心\Cake\Network\Email\CakeEmail.php第972行→ MailTransport->send(CakeEmail)APP\Controller\userscocontroller.php第103行→ CakeEmail->send(string)[内部函数]→ UsersController->contact()CORE\Cake\Controller\Controller.php第485行→ ReflectionMethod->invokeArgs(UsersController,array)CORE\Cake\Routing\Dispatcher.php第103行→ Controller->invokeAction(CakeRequest)CORE\Cake\Routing\Dispatcher.php第85行→ Dispatcher->\u invoke(UsersController、CakereRequest、CakerResponse)APP\webroot\index.php第92行→ Dispatcher->dispatch(CakereRequest,CakerResponse)这是一个堆栈跟踪错误。我在该页面上发布了所有错误。我需要上传项目才能发送电子邮件吗?不只是安装并启用openssl