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

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'smtp.yandex.ru',
'host' => 'localhost',
'username' => 'почта@yandex.ua',
'password' => 'пароль',
'port' => '465',
'encryption' => 'SSL',
],
],

сделал так, пишет ошибку http://c2n.me/3JtjMBG
urichalex
Сообщения: 994
Зарегистрирован: 2015.08.07, 11:03

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

Сообщение urichalex »

Artikk писал(а): 2017.04.13, 08:02
urichalex писал(а): 2017.04.12, 23:21 Проверьте, вообще отправляется ли почта через mail()
можете рассказать, как это сделать? первый раз с почтой в yii2 работаю
это не связано с yii

http://php.net/manual/ru/function.mail.php
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

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

Сообщение someweb »

ну где вы там 'class' => 'smtp.yandex.ru' увидели?
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'transport' => [
'class' => 'Swift_SmtpTransport',
'host' => 'smtp.yandex.ru',
'username' => 'почта@yandex.ua',
'password' => 'пароль',
'port' => '465',
'encryption' => 'SSL',
],
],

http://c2n.me/3JtkHrk
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

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

Сообщение someweb »

логин пароль неправильные
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

в том то и дело, правильные
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

мне в контроллере ничего не надо же менять?

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

$model = new ContactForm();
		if ($model->load(Yii::$app->request->post()) && $model->contact(Yii::$app->params['emailto'])) {
			Yii::$app->session->setFlash('contactFormSubmitted');
			return $this->refresh();

		}

someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

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

Сообщение someweb »

Тогда from неправильный, должен быть почта@yandex.ua
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

/* функция отправки письма на почту */
public function contact($emailto)
{
/* Проверяем форму на валидацию */
if ($this->validate()) {
Yii::$app->mailer->compose()
->setFrom([$this->email => $this->name]) /* от кого */
->setTo($emailto) /* куда */
->setSubject($this->subject) /* имя отправителя */
->setTextBody($this->body) /* текст сообщения */
->send(); /* функция отправки письма */

return true;
} else {
return false;
}
}

это?
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

поправил, так работает все!))
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

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

'mailer' => [
	'class' => 'yii\swiftmailer\Mailer',
	// send all mails to a file by default. You have to set
	// 'useFileTransport' to false and configure a transport
	// for the mailer to send real emails.
	'useFileTransport' => false,
],
почему так не работает?
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

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

Сообщение someweb »

Документацию хоть немного читайте.
You may also skip the configuration of the $transport property. In that case, the default PHP mail() function will be used to send emails.
Будет работать, если на хосте настроен почтовый сервер, иначе через что php должен почту отправлять?
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

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

Сообщение someweb »

Artikk писал(а): 2017.04.13, 10:03 ->setFrom([$this->email => $this->name]) /* от кого */
Ну опять же не будет работать. From всегда должен быть ваш ящик. Адрес из формы надо записывать в ReplyTo.
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

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

public function contact($emailto)
    {
        /* Проверяем форму на валидацию */
        if ($this->validate()) {
            Yii::$app->mailer->compose()
                ->setFrom('почта.ru@yandex.ua') /* от кого */
                ->setTo($emailto) /* куда */
                ->setSubject($this->subject) /* имя отправителя */
                ->setTextBody($this->body) /* текст сообщения */
                ->send(); /* функция отправки письма */

            return true;
        } else {
            return false;
        }
    }
что надо сделать, чтобы нормально работало, без портов и тд?
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

ReplyTo нет такого метода пишет
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

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

Сообщение caHek2x »

Artikk писал(а): 2017.04.13, 10:29 ReplyTo нет такого метода пишет
setReplyTo
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

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

public function contact($emailto)
    {
        /* Проверяем форму на валидацию */
        if ($this->validate()) {
            Yii::$app->mailer->compose()
                ->setFrom(Yii::$app->params['emailto']) /* от кого */
                //->setReplyTo(Yii::$app->params['emailto'])
                ->setTo($emailto) /* куда */
                ->setSubject($this->subject) /* имя отправителя */
                ->setTextBody($this->body) /* текст сообщения */
                ->send(); /* функция отправки письма */

            return true;
        } else {
            return false;
        }
    }
мне приходит щас только subject и body, как сделать чтобы
'name' => 'Имя',
'email' => 'Электронный адрес',
'subject' => 'Тема',
'body' => 'Сообщение',

это все приходило?
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

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

Сообщение someweb »

Добавьте к body все что нужно.
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Artikk
Сообщения: 742
Зарегистрирован: 2017.02.10, 09:12

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

Сообщение Artikk »

->setTextBody($this->name,$this->email) добавляю, приходит только name
caHek2x
Сообщения: 1242
Зарегистрирован: 2016.04.12, 20:41

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

Сообщение caHek2x »

Artikk писал(а): 2017.04.13, 11:19 ->setTextBody($this->name,$this->email) добавляю, приходит только name
менЯ всегда интересует вопрос ... а прописывая какие то параметры вы читаете что они значат ?

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

/**
     * Sets message plain text content.
     * @param string $text message plain text content.
     * @return $this self reference.
     */
    public function setTextBody($text);
отсюда вопрос ... с чего вы взяли что надо $this->email прописать вторым параметром ?
Ответить