CakeEmail - как мне его использовать? - PullRequest
16 голосов
/ 12 февраля 2012

В моем контроллере я использую функцию электронной почты со следующим кодом:

public function email($mail = null){

    $email = new CakeEmail('default');
    $email->config('default');

    $email->from(array('test@test.com' => 'testing'));
    $email->to('$mail');
    $email->subject('Approved');
    $email->send('Approved');

Вверху у меня есть

App::uses('AppController', 'Controller', 'CakeEmail', 'Network/Email');

Однако я получаю сообщение об ошибке. Неустранимая ошибка: класс 'CakeEmail' не найден в.

Я не уверен, где я ошибся. Кто-нибудь может помочь?

Ответы [ 4 ]

36 голосов
/ 13 февраля 2012

Вам нужно изменить свое приложение :: использует и разделить два:

App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');
5 голосов
/ 12 февраля 2012

App::uses() допускает только два аргумента: $className и $location. Вы передали 4 аргумента, поэтому CakeEmail не загружается.

См. http://api20.cakephp.org/class/app#method-Appuses и http://book.cakephp.org/2.0/en/core-utility-libraries/app.html#App::uses для получения дополнительной информации

2 голосов
/ 12 февраля 2012

документация довольно ясна: http://book.cakephp.org/2.0/en/core-utility-libraries/email.html?highlight=cakeemail#CakeEmail

"Прежде всего, вы должны убедиться, что класс загружен"

на второй взгляд: ваше приложение :: использует () неправильно.проверить, как это задокументировано.

1 голос
/ 13 февраля 2012

Вы можете использовать компонент электронной почты в контроллере

public $components = array('Email'); 

public function email(){
  $this->Email->to = 'yourmail@mail.com';  
  $this->Email->subject = 'Subject - ';   
  $this->Email->from = 'sender@mail.com';  
  $this->Email->send('message');
}
...