У меня возникла проблема при отправке сообщений электронной почты через форму с вкладки контактов. Я настроил в 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(); ?>
через форму по умолчанию на вкладке контактов в проекте.
@simple_code прикрепить к вопросу код отправки
Форма по умолчанию отправляет электронные письма на почтовый ящик, указанный в params.php в конфигурации. Это только пример, вы должны настроить эту форму под свои нужды.
Я видел несколько руководств и считаю, что авторы внесли изменения только в один файл web.php. Как чем сделать, чтобы письма отправлялись на адрес из формы?






Разрешить менее безопасным приложениям доступ к вашей учетной записи Gmail
Чтобы отключить эту функцию безопасности:
Этот параметр может быть недоступен для:
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).
А для других программ нужные настройки...
Хотел поставить плюс, но добавил минус. Извиняюсь. Очень полезный ответ
Как вы отправляете это письмо?