У меня недавно возникли проблемы при обновлении моего приложения с 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 в виде обычного текста.
Есть идеи о том, как устранить неполадки? Спасибо!