CakeEmail не отправляет, но ошибок нет

Я довольно новичок в CakePHP, и это моя первая попытка настроить форму электронной почты.

Сохраняя пример простым:

<?php
App::uses('AppController', 'Controller');
App::uses('CakeEmail', 'Network/Email');
class EmailController extends AppController {

    public function send_email($from, $subject, $message) {
        $Email = new CakeEmail();
        $Email->from($from)
        ->to('[my personal email]')
        ->subject($subject);
        if($Email->send($message)) {
            $result = 'Your email has been sent.';
        } else {
            $result = 'Your email failed to send.';
        }

        $this->set('result', $result);
        $this->set('params', '('.$from.'|'.$subject.'|'.$message.')');
    }
}

send_email.ctp

<?php echo $result;?>
<br>
<?php echo $params;?>

Я получаю сообщение "Ваше письмо отправлено", $params выглядят так, как я ожидаю, и я не вижу никаких ошибок... но я не получаю письмо. Есть идеи, почему это может произойти?

1 ответ

Решение

Перед этим вам нужно определить конфигурацию электронной почты в email.php в папке Config

Здесь у нас есть конфигурация Gmail, например

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

тогда вы можете использовать эту настройку в контроллере, как

$Email= new CakeEmail('gmail');

Вкратце, вы должны настроить SMTP в соответствии с требованиями. Я надеюсь, что это будет удобно для вас. Спасибо

Другие вопросы по тегам