Отправка писем в YII2 через контактную форму отправка на другой адрес

У меня возникла проблема при отправке сообщений электронной почты через форму с вкладки контактов. Я настроил в web.php как

'mailer' => [                
    'class' => 'yii\swiftmailer\Mailer',               
    'transport' => [                   
        'class' => 'Swift_SmtpTransport',                   
        'host' => 'smtp.gmail.com',                  
        'username' => '[email protected]',                  
        'password' => 'PASSWORD',                   
        'port' => '587',                  
        'encryption' => 'tls'               
    ],
    'useFileTransport' => false,
]

но когда я отправляю заполненную форму, я не получаю никаких сообщений на свой почтовый ящик. Я тоже не получаю никакой ошибки. Когда я проверяю Yii Debugger, сообщения журнала показывают, что:

13:14:10.377    info    yii\mail\BaseMailer::send   Sending email "dasdasdasd" to "[email protected]"
13:14:10.377    info    yii\swiftmailer\Mailer::sendMessage Sending email "dasdasdasd" to "[email protected]"

Почему он показывает, что отправил сообщение на другой адрес, чем тот, который я дал? Где проблема?

Контроллер сайта:

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,
    ]);
}
<?php $form = ActiveForm::begin(['id' => 'contact-form']); ?>

    <?= $form->field($model, 'name')->textInput(['autofocus' => true]) ?>
    <?= $form->field($model, 'email') ?>
    <?= $form->field($model, 'subject') ?>
    <?= $form->field($model, 'body')->textarea(['rows' => 6]) ?>
    <?= $form->field($model, 'verifyCode')->widget(Captcha::className(), [
        'template' => '<div class = "row"><div class = "col-lg-3">{image}</div><div class = "col-lg-6">{input}</div></div>',
    ]) ?>

    <div class = "form-group">
        <?= Html::submitButton('Submit', ['class' => 'btn btn-primary', 'name' => 'contact-button']) ?>
    </div>

<?php ActiveForm::end(); ?>

Как вы отправляете это письмо?

rob006 12.03.2019 13:41

через форму по умолчанию на вкладке контактов в проекте.

user10458042 12.03.2019 13:44

@simple_code прикрепить к вопросу код отправки

Maksym Fedorov 12.03.2019 13:47

Форма по умолчанию отправляет электронные письма на почтовый ящик, указанный в params.php в конфигурации. Это только пример, вы должны настроить эту форму под свои нужды.

rob006 12.03.2019 13:53

Я видел несколько руководств и считаю, что авторы внесли изменения только в один файл web.php. Как чем сделать, чтобы письма отправлялись на адрес из формы?

user10458042 12.03.2019 13:56
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
5
1 870
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Разрешить менее безопасным приложениям доступ к вашей учетной записи Gmail

Чтобы отключить эту функцию безопасности:

  1. Нажмите здесь, чтобы получить доступ к менее безопасному приложению в моей учетной записи.
  2. Рядом с «Разрешить менее безопасные приложения: ВЫКЛ.» установите тумблер, чтобы включить его.

Этот параметр может быть недоступен для:

  • Учетные записи с включенной двухэтапной проверкой: для таких учетных записей требуется доступ пароль приложения для менее безопасных приложений.
  • Пользователи G Suite: этот параметр скрыт, если ваш администратор заблокирован менее безопасный доступ к учетной записи приложения.

Исходная ссылка

Yii::$app->mailer->compose()
    ->setFrom('<fromUsername>@<yourDomain>')
    ->setTo('<user@Email>')
    ->setSubject('Уведемление с сайта <yourDomain>') // тема письма
    ->setTextBody('Текстовая версия письма (без HTML)')
    ->setHtmlBody('<p>HTML версия письма</p>')
    ->send();

Если вы используете локальный хост, вы должны «Комментировать» настройки swiftmailer. Например, для XAMPP вам нужно выполнить соответствующие настройки, и вам не нужен swiftmailer. Настроить в (файл php.ini — sendmail.ini).

А для других программ нужные настройки...

Хотел поставить плюс, но добавил минус. Извиняюсь. Очень полезный ответ

user10458042 12.03.2019 15:20

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