Отправка писем из приложения CakePHP с помощью Gmail

Я пытаюсь заставить веб-сайт, который я разрабатываю, отправлять электронные письма с напоминанием пароля. У меня была идея использовать мою учетную запись Gmail только для проверки. Из кулинарной книги торта у меня есть этот код:

$this->Email->from = '[email protected]';
$this->Email->smtpOptions = array(
    'port'=>'465',
    'timeout'=>'30',
    'host' => 'ssl://smtp.gmail.com',
    'username'=>'[email protected]',
    'password'=>'notmyrealpassword');
$this->Email->delivery = 'smtp';
$this->Email->from = '[email protected]';
$this->Email->to = $this->request->data['User']['email'];
$this->Email->subject = 'Your account reset request';
$this->Email->send('testing');
$this->Email->send();
debug($this->Email->smtpError);

Однако, когда этот код выполняется, я получаю эту ошибку:

Error: Call to a member function messageID() on a non-object    
File: C:\xampp\htdocs\site\lib\Cake\Controller\Component\EmailComponent.php 
Line: 312

Notice: If you want to customize this error message, create app\View\Errors\fatal_error.ctp

Что я здесь делаю неправильно? На данный момент я просто хочу проверить, может ли мое приложение правильно отправлять электронную почту. Однако будет ли Gmail достойным способом отправки электронных писем моим пользователям в рабочей среде?

Спасибо.


person James Dawson    schedule 17.08.2012    source источник
comment
Почему бы просто не использовать локальный sendmail? :)   -  person Ja͢ck    schedule 17.08.2012
comment
Лучше используйте новый класс CakeEmail вместо компонента. Ошибка может быть вызвана тем, что вы не установили тему перед вызовом send(), хотя ваш код показывает, что вы ее установили. Является ли это фактическим кодом, вызывающим этот фатальный исход? Также вы дважды вызываете send().   -  person Ceeram    schedule 17.08.2012


Ответы (1)


Похоже, вы не включили класс компонента в свой контроллер. Включите EmailComponent в файл вашего контроллера.

public $components = array('Email');
person Arun Jain    schedule 17.08.2012
comment
У меня есть компонент электронной почты, включенный в мой контроллер. - person James Dawson; 18.08.2012