Laravel 7 письмо, показывающее html теги в виде простого текста при прикреплении файла - PullRequest
1 голос
/ 17 апреля 2020

У меня недавно возникли проблемы при обновлении моего приложения с Laravel 6 до 7. Я наконец решил создать приложение fre sh Laravel 7 и вручную импортировать в него свой код Laravel 6. Все работает отлично, за исключением одной вещи, и я не могу разобраться с этим.

Я использую свое приложение, чтобы создать файл PDF и прикрепить его к электронному письму. Почтовое тело на самом деле представляет собой шаблон Blade с некоторым кодом HTML. Раньше это работало нормально, но теперь, когда я прикрепляю файл PDF, тело письма показывает полный код HTML в виде простого текста.

Это функция сборки моей модели Mail:

    public function build()
{

    return $this->subject(trans('text.reminder_subject').' '.$this->invoice->invoice_number)
                ->replyTo('info@blabla.com', 'SebDev')
                ->attach(storage_path($this->invoice->invoice_number.'.pdf'))
                ->view('mails.reminder-mail')
                ->with([
                    'invoice' => $this->invoice,
                    'text' => $this->text
                ]);

}

Это мой код Blade:

<!doctype html>
  <head>
    <meta charset="utf-8">

    <title>Herinnering factuur {{ $invoice->invoice_number }}</title>

  </head>

  <body style='font-family:Segoe UI;'>

      <div style='width:75%;margin:auto;'>

          {!! nl2br($text) !!}

      </div>

</body>
</html>

Если я удалю эту часть:

->attach(storage_path($this->invoice->invoice_number.'.pdf'))

Письмо будет отображаться нормально, но, очевидно, без вложения. Однако, если эта строка добавлена, вложение отправляется с электронным письмом, но тело письма содержит код HTML в виде обычного текста.

Есть идеи о том, как устранить неполадки? Спасибо!

1 Ответ

0 голосов
/ 24 апреля 2020

Обновление: я обновился до Laravel 7.6, что, похоже, решило проблему. Я до сих пор не уверен, что поначалу пошло не так, но проблема больше не появляется.

...