CakePHP 2.0: разочарование CakeEmail - PullRequest
5 голосов
/ 01 декабря 2011

В Cake 1.3 EmailComponent сделал то, что должен делать. Новый класс Cake Email в версии 2.0 оказался разочарованием .... Не было отправлено писем, нет ошибок ... смутная документация ...

Я перепробовал все возможные варианты, попробовал с моими SMTP, Mail () и Gmail, ничего не происходит. Настоящая моя последняя попытка:

Фрагмент контроллера:

//on top of page
App::uses('CakeEmail', 'Network/Email');


//in method
$email = new CakeEmail();
$email->template('contact_email')
->emailFormat('text')
->to('my@gmail.com')
->from('other@gmail.com')
->send();

Файл конфигурации Email.php:

class EmailConfig {

//It also does not work with a constructor

public $gmail = array(
    'host' => 'ssl://smtp.gmail.com',
    'port' => 465,
    'username' => 'my@gmail.com',
    'password' => '***',
    'transport' => 'Smtp'
);

Может кто-нибудь опубликовать РАБОЧИЙ код для класса электронной почты. Большое спасибо

Ответы [ 3 ]

9 голосов
/ 22 декабря 2011

Я думаю, что вы должны загрузить свою конфигурацию из Config / email.php явно, она не загружается автоматически, даже не конфигурация по умолчанию:

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

//or in constructor::
$email = new CakeEmail('default');
3 голосов
/ 22 января 2012

На мой взгляд, вы должны использовать это:

$email = new CakeEmail('gmail');
1 голос
/ 05 декабря 2011

Это мой почтовый конфигурационный файл.Я не делал никаких изменений здесь

class EmailConfig {

    public $default = array(
        'transport' => 'Mail',
        'from' => 'Admin <no-reply@example.com>',       
        'charset' => 'utf-8',
        'headerCharset' => 'utf-8',
    );

}

Так я отправляю почту

$email    = new CakeEmail();

$result   = $email->template('welcome')
              ->emailFormat('text')
              ->to($NewUser['email'])
              ->from('admin@example.com')
              ->send();
var_dump($result);
...