xoma2
@xoma2
Программист

Почему не отправляется письмо в yii2?

Контроллер
public function actionIndex(){
        $model = new ContactForm();
        if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['adminEmail'])) {
            Yii::$app->session->setFlash('contactFormSubmitted');

            return $this->refresh();
        } else {
            return $this->render('contact', [
                'model' => $model,
            ]);
        }
    }

Модель
public function contact($email)
    {
        if ($this->validate()) {
            Yii::$app->mailer->compose()
                ->setTo($email)
                ->setFrom([$this->email => $this->name])
                ->setSubject($this->subject)
                ->setTextBody($this->body)
                ->send();

            return true;
        } else {
            return false;
        }
    }

Форма
<?php $form = ActiveForm::begin(['id' => 'contact-form', 'options' => ['class' => 'contact ']]); ?>
                <?= $form->field($model, 'name')->label(false)->textInput(array('placeholder' => 'Представьтесь')) ?>
                <?= $form->field($model, 'email')->label(false)->textInput(array('placeholder' => 'Обратная связь (почта, skype, телефон)'))?>
                <?= $form->field($model, 'body')->textArea(['rows' => 6])->label(false)->textarea(array('placeholder' => 'Ваше сообщение'))?>
                <div class="form-group">
                    <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
                </div>
                <?php ActiveForm::end(); ?>


Ошибка
  • Вопрос задан
  • 4457 просмотров
Решения вопроса 1
@NetyNicka
если в папке /mysuperapp/runtime есть ваши отправленные, но не дошедшие письма, значит нужно отключить useFileTransport в config файле:
'mail' => [
            'class' => 'yii\swiftmailer\Mailer',
            'useFileTransport' => false,
        ],
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@matperez
Что за ошибка? Попробуйте отдебажить процесс отправки
Как отправлять письма через swiftMailer в Yii2?
Ответ написан
Комментировать
@lavrentiev
Back-end разработчик

'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@app/mail'
],

Отключить трансфер это предположение, а вообще че за ошибка? )))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы