Email Cakephp电子邮件功能提供未知电子邮件配置;gmail“;

Email Cakephp电子邮件功能提供未知电子邮件配置;gmail“;,email,cakephp,Email,Cakephp,我已经在public function add()中编写了生成电子邮件功能。 我的想法是将我的邮件发送给已注册的用户。 我的添加功能如下所示。 添加功能工作正常,但邮件生成错误显示未知电子邮件配置“gmail”。请帮忙。 app/Controller/userscocontroller.php <?php App::uses('AppController', 'Controller'); class UsersController extends AppControl

我已经在public function add()中编写了生成电子邮件功能。 我的想法是将我的邮件发送给已注册的用户。 我的添加功能如下所示。 添加功能工作正常,但邮件生成错误显示未知电子邮件配置“gmail”。请帮忙。 app/Controller/userscocontroller.php

 <?php
    App::uses('AppController', 'Controller');


    class UsersController extends AppController {
    public function add() {

    if ($this->request->is('post')) {
      $this->User->create();
      if ($this->User->save($this->request->data)) {

        $data[] =  $this->request->data;
        foreach($data as $row){
          $email_name = $row['User']['username'];
          $password = $row['User']['password'];
        }

        $data = array();
        $subject = "Visualization Tool Login credentials";
        // From
        $header="manasasirsi17@gmail.com";
        // Your message
        $message="welcome user\r\n";
        $message.="Thank You for Registering\r\n";
        $message.="your login details are as given below\r\n";
        $message.="username:$email_name\r\n";
        $message.="password:$password\r\n";

        App::uses('CakeEmail', 'Network/Email');
        $smtp = new CakeEmail('smtp');
        $smtp->from(array($header => $header));
        $smtp->to($email_name);
        $smtp->subject($subject);

        $smtp->emailFormat('html');
        $Email->send($message);

       $this->Session->setFlash(__('Login Details are sent to You via Email.'));
      $this->Session->setFlash(__('The user has been saved.'));
      return $this->redirect(array('controller' => 'Users', 'action' => 'login'));
      } else {
      $this->Session->setFlash(__('The user could not be saved. Please, try again.'));
        }
      }
    }
 }

您尚未在
EmailConfig
类中定义
gmail
电子邮件配置。这一行:-

$Email = new CakeEmail('gmail');
从代码的外观可以看出:-

$Email = new CakeEmail('smtp');

传递给
CakeEmail
的参数确定要使用
EmailConfig
中定义的配置。如果您想传递它
gmail
,则需要向包含配置的
EmailConfig
类添加
$gmail
属性。

我按照您的建议编辑了我的代码。但它给出了一个错误,例如stream\u socket\u client():SSL操作失败,代码为1。OpenSSL错误消息:错误:140770FC:SSL例程:SSL23\u GET\u SERVER\u HELLO:未知协议流\u socket\u client():无法启用加密流\u socket\u client():无法连接到ssl://smtp.gmail.com:25 (未知错误)由于该错误,我将端口更改为465。现在,错误says@Manasa这似乎是另一个问题。通过更改代码以使用我的答案,CakePHP现在使用了正确的配置,但您的配置似乎不正确。这可能有助于:
$Email = new CakeEmail('smtp');