CAKEPHP: блок Catch не выполняется, даже если электронная почта получателя не существует

Я использую CakePHP 2.0

Есть ли способ в cakePHP проверить, доставлено письмо или нет. Я пытался поймать ошибку, когда $Email->send(); выполняет. Но это всегда возвращает некоторую строку, содержащую тело отправленного сообщения и т. Д.

Например, у меня есть это:

     try {
        $to = $message_data['email'];
        if (isset($message_data['name'])) {
            $to = array($message_data['email'] => $message_data['name']);
        }
        $Email->template($template, 'default')
            ->from($sender)
            ->to("c.chardkhkhjfsd@gmail.com")
            ->subject($message_data['subject'])
            ->emailFormat('html');

        if ($replyTo) {
            $Email->replyTo($replyTo);
        }

        if (isset($message_data['attachment'])) {
            $Email->attachments(array(
                $message_data['filename'] => array(
                    'data' => $message_data['attachment'],
                    'mimetype' => $message_data['attachment_mimetype']
                )
            ));
        }
        $Email->send();     
    } catch (SocketException $e) {
        Debugger::log("no way");
    }

Но это никогда не попадает в блок catch, даже если получатель электронной почты (c.chardkhkhjfsd@gmail.com) не существует.

Моя настройка SMTP выглядит так:

  public $test = array(
    'transport' => 'Smtp',
    'tls' => true,
    'from' => array('*************' => '****'),
    'host' => 'smtp.gmail.com',
    'port' => 587,
    'timeout' => 30,
    'client' => null,
    'log' => false,
    'username' => '***************',
    'password' => ''
);

0 ответов

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