Отправка электронной почты с CakePHP не работает с использованием CakeEmail, а также SwiftMailer - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь отправить электронное письмо от CakePHP, но безуспешно. Я пытаюсь с CakeEmail и этот код:

$email = new CakeEmail();
$email->from(array('reynierpm@gmail.com' => __('Recruitment Job App')))
      ->to('reynierpm@gmail.com')
          ->subject(__('Recruitment Status Update'))
          ->send(__('Dear, ReynierPM this is a testing email'));

И не работает, потому что письма не отправляются. Файл /app/Config/email.php имеет следующую конфигурацию:

class EmailConfig {
   public $default = array(
    'transport' => 'Debug',
    'host' => 'smtp.gmail.com',
    'port' => 25,
    'timeout' => 30,
    'username' => 'mlrepemi@gmail.com',
    'password' => 'secret_password',
    'charset' => 'utf-8',
    'headerCharset' => 'utf-8',
);  
}

Я пробовал также это http://bakery.cakephp.org/articles/sky_l3ppard/2009/11/07/updated-swiftmailer-4-xx-component-with-attachments-and-plugins, но в этом случае я получаю эту ошибку:

Неустранимая ошибка: класс 'testemailView' не найден в /var/www/html/jobapp/app/Controller/Component/swift_mailer.php в строке 245

Я использую CakePHP 2.0.6 и SwiftMailer 4.1.5, любая помощь? Приветствия и спасибо заранее

1 Ответ

4 голосов
/ 27 февраля 2012

Вы пропускаете некоторые важные части, чтобы включить электронную почту. У вас должно быть что-то вроде этого:

App::uses('CakeEmail', 'Network/Email');
$email = new CakeEmail('default');

Тогда в вашей конфигурации email.php ваша конфигурация по умолчанию для gmail должна выглядеть следующим образом:

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