Нужен совет/рецепт по где хранить html шаблон для письма

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение mika_di »

Здравствуйте, планируется отправлять письма с различными уведомлениями(заказ сделан, пароль изменён, или новость какая), шаблоны хоть и не сильно но отличаются.
Сама отправка письма происходит из компонента, что-то типо того

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

 public function email($hesh = 'e1ab8cfdf398e8358fe504a391e61a9764c85891',$email = 'your_addr@gmail.com')
    {
        $subject = 'Важное письмо';
        $mailbody = '<h3>Отзыв с сайта</h3>
                            <p><b>Имя:</b>Имя</p>
                            <p><b>e-mail:</b> Адрес</p>
                            <p><b>Тема:</b>Тема</p>
                            <p><b>Текст:</b></p>
                            <p>Тело</p>
                            <a href="http://site.ru/registration/accept/?verife_code='.$hesh.'">
                            http://site.ru/registration/accept/verife_code/'.$hesh.'</a>
                            ';
        $send =  \Yii::$app->get('registrationMailer')
            ->compose()
            ->setFrom('registration@site.ru')
            ->setTo($email)
            ->setSubject($subject)
            ->setHtmlBody($mailbody)
            ->send();
       return $send;
    }
Но письмо, особенно с новостями может быть очень большое в плане html.

И вот подскажите как бы так сделать что бы mailbody была подключаемой вьюшкой- просто каким то файлом куда можно передавать php переменные для формирования. Где хранить, как подключать?
someweb
Сообщения: 552
Зарегистрирован: 2017.03.09, 10:12

Re: Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение someweb »

В compose() передавайте вид.

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

Yii::$app->mailer->compose('contact/html', ['contactForm' => $form])
    ->setFrom('from@domain.com')
    ->setTo($form->email)
    ->setSubject($form->subject)
    ->send();
http://www.yiiframework.com/doc-2.0/yii ... ailer.html
Чтобы правильно задать вопрос, нужно знать бо́льшую часть ответа. Роберт Шекли.
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение mika_di »

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

compose('contact/html', ['contactForm' => $form])
первый параметр - где лежит, а второе это что?
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение mika_di »

Пардон, туплю, все понял. Спасибо))
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение mika_di »

Папка куда складываются шаблоны, произвольная, или есть какая-то общепринятая?
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение Nex-Otaku »

Ага, есть, зовётся как ни странно "mail" )
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение mika_di »

А из-за чего в compose может не передаваться параметр, передаю туда переменную с телефоном, получаю ошибку что в таком то шаблоне 'Undefined variable: phone' ?
Пробую посмотреть через

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

var_dump
то же самое, говорит, что неизвестная переменная
передаю так

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

->compose('contact/order', ['email' => $email,['phone' => $phone]])
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение Nex-Otaku »

Зачем массив в массив запихнул? Надо так:

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

['email' => $email, 'phone' => $phone]
Аватара пользователя
mika_di
Сообщения: 218
Зарегистрирован: 2015.09.24, 11:57

Re: Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение mika_di »

это случайно, на самом деле именно так передаю

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

['email' => $email, 'phone' => $phone]
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Нужен совет/рецепт по где хранить html шаблон для письма

Сообщение Nex-Otaku »

Ты где-то опечатался, или не туда смотришь. Внимательнее ищи. Ошибка только в твоём собственном коде может быть.
Ответить