2013-04-16 3 views
0

Когда я пытаюсь отправить сообщение в CakePHP или зарегистрировать нового пользователя я получить:CakePHP не удалось отправить электронную почту

Could not send email. 

Ошибка: Внутренняя ошибка. Трассировка стека

CORE\Cake\Network\Email\MailTransport.php line 47 → MailTransport->_mail(string, string, string, string, null) 
CORE\Cake\Network\Email\CakeEmail.php line 1066 → MailTransport->send(CakeEmail) 
CORE\Cake\Controller\Component\EmailComponent.php line 347 → CakeEmail->send(null) 
APP\Plugin\Messages\Controller\MessagesController.php line 158 → EmailComponent->send() 
[internal function] → MessagesController->add(string) 
CORE\Cake\Controller\Controller.php line 486 → ReflectionMethod->invokeArgs(MessagesController, array) 
CORE\Cake\Routing\Dispatcher.php line 187 → Controller->invokeAction(CakeRequest) 
CORE\Cake\Routing\Dispatcher.php line 162 → Dispatcher->_invoke(MessagesController, CakeRequest, CakeResponse) 
APP\webroot\index.php line 96 → Dispatcher->dispatch(CakeRequest, CakeResponse) 

Я новичок в CakePHP и я редактировать этот файл, в приложении/Config/email.php

public $smtp = array(
    'transport' => 'Smtp', 
    'from' => array('[email protected]' => 'My Site'), 
    'host' => 'ssl://smtp.gmail.com', 
    'port' => 465, 
    'timeout' => 30, 
    'username' => '**user**', //hidden 
    'password' => '**my secret**', //hidden 
    'client' => null, 
    'log' => false 
    //'charset' => 'utf-8', 
    //'headerCharset' => 'utf-8', 
); 

также редактировать Библиотека/Cake/Сеть/Email/CakeEmail.php

protected $_transportName = 'Smtp'; 

и редактировать Библиотека/Cake/Сеть/Email/SmtpTransport.php

public function config($config = array()) { 
    $default = array(
     'host' => 'ssl://smtp.gmail.com', 
     'port' => 465, 
     'timeout' => 30, 
     'username' => '[email protected]', 
     'password' => 'enomis58', 
     'client' => null, 
     'tls' => false 
    ); 
    $this->_config = $config + $default; 
} 

Пожалуйста, помогите мне ... вечная работа, а не электронная почта или сообщение. Если вы хотите воссоздать ошибку, которую вы можете зарегистрировать на моем сайте http://bbcd.bio.uniroma1.it/eventi/

Thx все мне ответят.


Здесь Код:

   foreach($usersTo as $userTo) { 
       if($userTo['User']['notification'] && $userTo['User']['id']!=$this->Auth->user('id')) { 
        $this->set('message_id', $parent_id); 
        $this->set('message', $this->request->data['Message']['message']); 
        $this->Email->reset(); 
        $this->Email->from = Configure::read('evento_settings.systemEmail'); 
        $this->Email->to = $userTo['User']['username'].' <'.$userTo['User']['email'].'>'; 
        $this->Email->replyTo = Configure::read('evento_settings.systemEmail'); 
        $this->Email->return = Configure::read('evento_settings.systemEmail'); 
        $this->Email->subject = __('You have a new message in').' '; 
        $this->Email->subject.= Configure::read('evento_settings.appName'); 
        $this->Email->delivery = 'mail'; 
        $this->Email->template = 'Messages.new_message'; 
        $this->Email->sendAs = 'both'; 
        $this->Email->send(); 
        //debug($this->Session->read('Message.email'));exit; 
       } 
+0

Вы забыли код, в котором вы действительно отправляете электронное письмо. Вы обернули его, чтобы поймать $ exceptions? – mark

+0

Извините код? Может у помочь мне узнать, где я могу найти его? и как редактировать? – simoneroma85

+0

Код вокруг MessageController.php line 158 – mark

ответ

0

Наконец ... я решить. Я сделал ошибку, забыл настроить почтовую почту, наконец, я могу отправить электронное письмо с помощью smtp. Если кому-то нужна помощь, можете посмотреть этот урок: http://www.youtube.com/watch?v=dKO4MfOpDVs

Thx all for answer.

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