Форма обратной связи.

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
qwerty444
Сообщения: 50
Зарегистрирован: 2016.12.27, 07:32
Откуда: Россия
Контактная информация:

Форма обратной связи.

Сообщение qwerty444 » 2018.05.18, 16:32

Добрый день.
При отправке письма через форму обратной связи.появляется ошибка

Swift_TransportException

Ожидаемый код ответа 250, но получил код «553», с сообщением «553 5.7.1 Отклоненный адрес отправителя: не принадлежит пользователю auth
».


модель

Код: Выделить всё

 public function contact($email)
    {
        if ($this->validate()) {
            Yii::$app->mailer->compose()
             //   ->setFrom(['myemail@yandex.ru' => $this->name]) - если эту строчку заменить на нижнею ,то ошибки нет,получаю письмо от себя.
                ->setFrom([$this->email => $this->name])
                ->setTo([$email])
                ->setSubject($this->subject)
                ->setTextBody($this->body)
                ->send();

            return true;
        }
        return false;
контролер

Код: Выделить всё

 public function actionContact()
    {
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
            Yii::$app->session->setFlash('contactFormSubmitted');

            return $this->refresh();
        }
        return $this->render('contact', [
            'model' => $model,
        ]);
    }
web.php

Код: Выделить всё

 'mailer' => [
            'class' => 'yii\swiftmailer\Mailer',
            'useFileTransport' => false,
            'transport' => [
                'class' => 'Swift_SmtpTransport',
                'host' => 'smtp.yandex.ru',
                'username' => 'myemail@yandex.ru',
                'password' => '***************',
                'port' => '465',
                'encryption' => 'ssl',
            ],
        ],
params.php

Код: Выделить всё

<?php

return [
   'adminEmail' => 'myemael@yandex.ru',
];
Пробовал сделать с помощью этого урока http://www.webapplex.ru/forma-obratnoj- ... na-yii-2.x вместо email прописывал emailto в params,контролер,модель ,но в этом случае была другая ошибка.
Неопределенный индекс: emailto

Что можно ещё сделать ,в чём ошибка?

Nex-Otaku
Сообщения: 809
Зарегистрирован: 2016.07.09, 21:07

Re: Форма обратной связи.

Сообщение Nex-Otaku » 2018.05.18, 17:00

Ваша ошибка в том, что сервис Яндекса не разрешает подставлять не принадлежащие вам адреса в поле FROM. И этот сервис правильно делает, между прочим.

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

Ответить