2014-10-09 5 views
0

Я получаю сообщение «Неизвестная ошибка электронной почты« gmail »при попытке отправить электронное письмо с помощью Cakephp, потому что я отправляю его с localhost (xampp)?Ошибка при отправке письма CakePHP

if($this->User->save($this->request->data)){ 
     $message='Click on the link below to complete registration '; 
     $confirmation_link='www.sitename.com/users/verify/t:'.$hash.'/n:'.$this->data['User']['username'].''; 
     App::uses('CakeEmail', 'Network/Email'); 
     $email = new CakeEmail('gmail'); 
     $email->Email->from = '[email protected]'; 
     $email->Email->to=$this->data['User']['email']; 
     $email->Email->subject = 'Confirm Registration'; 
     $email->Email->smtpOptions = array(
     'host' => 'ssl://smtp.gmail.com', 
     'port' => 465, 
     'username' => '[email protected]', 
     'password' => 'mypassword', 
     'transport' => 'Smtp' 
     ); 
     $email->send($message . " " . $confirmation_link); 
     $this->Session->setFlash(__('you should activate your account')); 
     } 
} 

ответ

1

Для того, чтобы использовать new CakeEmail('gmail') вы должны конфиг gmail в файле конфигурирования (/Config/email.php), такие как:

public $gmail = [ 
    'transport' => 'Mail', 
    'from' => '[email protected]', 
    //'charset' => 'utf-8', 
    //'headerCharset' => 'utf-8', 
]; 

http://book.cakephp.org/2.0/en/core-utility-libraries/email.html

new CakeEmail('gmail') будет читать ваш gmail конфигурации и вам не придется настраивать его в своем приложении.

Если вы все конфигурации в вашем приложении, может быть, вы хотели бы использовать new CakeEmail();

+0

спасибо так много человека, нет больше ошибок! но отправляет электронную почту с помощью localhost с помощью cakephp? я не мог найти никакой информации об этом – Exchanger13

+0

Это действительно зависит от среды вашего локального хоста. Если мы правильно настроим среду, можно отправить электронную почту с помощью localhost. Просто относитесь к нему как к реальному серверу. Когда вы развиваетесь на реальном сервере напрямую, это также «localhost», я прав? – kyo

Смежные вопросы