laravel уценка электронной почты рендеринга hrml в почтовый ящик - PullRequest
0 голосов
/ 29 января 2020

Недавно я обновляю Laravel до 6.13.0. Перед обновлением мой шаблон электронной почты уценки был хорош в дизайне. После обновления я пытаюсь отправить Laravel Mail в формате уценки. Но когда я тестирую его с MailDev, он отображает формат HTML.

Мой шаблон электронной почты выглядит так.

@component('mail::message')
   @component('mail::panel')
      <div class="row">
        <div class="col-6 bg-gray">
            <span>Time</span>
        </div>
        <div class="col-6 bg-gray">
            <span class="badge">{{ date('jS F g:ia', strtotime($signal->signal_time)) }}</span>
        </div>
    </div>
   @endcomponent
@endcomponent

тогда это выглядит так в MailDev ..

enter image description here

Что я могу сделать сейчас?

Ответы [ 3 ]

0 голосов
/ 29 января 2020

Компоненты панели по умолчанию HTML.

Если вы хотите переопределить пространство имен компонента mail:: по умолчанию, вам нужно опубликовать sh файлы поставщика.

php artisan vendor:publish --tag=laravel-mail

Тогда, если вы заглянете в resources/views/vendor/mail/markdown/, вы увидите компоненты, которые вы можете редактировать.

panel.blade.php - это просто {{ $slot }}, измените на {!! $slot !!}, чтобы разрешить нефильтрованный html .

Также, как примечание, если вы используете Markdown, вы, вероятно, не хотите использовать сложные bootstrap & HTML напрямую.

Подробнее здесь: https://laravel.com/docs/6.x/mail#customizing -The-компоненты

0 голосов
/ 03 февраля 2020

Я получил решение для этой проблемы. недавно Laravel переместил CommonMark в качестве шаблона уценки. это не конвертирует пространство. поэтому мой шаблон электронной почты отображается как HTML разметка. Теперь, что нужно сделать, чтобы это исправить.

Я удалил все пробелы из своих файлов шаблонов электронной почты, как это.

@component('mail::message')
@component('mail::panel')
<div class="row">
<div class="col-6 bg-gray">
<span>Time</span>
</div>
<div class="col-6 bg-gray">
<span class="badge">{{ date('jS F g:ia', strtotime($signal->signal_time)) }}</span>
</div>
</div>
 @endcomponent
@endcomponent

, и это решило мою проблему. Я думаю, что кто-то получает помощь от этого ответа.

0 голосов
/ 29 января 2020

У меня возникла та же проблема, и в моем случае я исправил ее, написав все вещи с @ в одной строке, например:

Файл: resources/views/vendor/notifications/email.blade.php

До (не работает, показывает linkduration в почте):

@lang('mail.welcome.linkduration', 
  ['linkduration' => $linkduration]
)

После (работает)

@lang('mail.welcome.linkduration', ['linkduration' => $linkduration])

Надеюсь, это поможет

...