我最近在将我的程序从Laravel 6升级到Laravel 7时遇到了麻烦, 我最后决定创建一个新的Laravel 7程序并手动导入我的Laravel 6代码. 所有的工作都很好, 除了这一件事, 我无法理解.
我用我的应用程序创建一个PDF文件并把它附加到邮件中. 邮件正文实际上是一个带有一些HTML代码的Blade模板。以前这样做很好,但现在,每当我附加一个PDF文件时,邮件正文就会将完整的HTML代码显示为纯文本。
这是我的邮件模型的构建功能。
public function build()
{
return $this->subject(trans('text.reminder_subject').' '.$this->invoice->invoice_number)
->replyTo('[email protected]', 'SebDev')
->attach(storage_path($this->invoice->invoice_number.'.pdf'))
->view('mails.reminder-mail')
->with([
'invoice' => $this->invoice,
'text' => $this->text
]);
}
这是我的刀片代码
<!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代码。
请问有什么办法可以解决这个问题吗? 谢谢!
更新: 我升级到了Laravel 7.6, 似乎解决了这个问题. 我还是不知道是哪里出了问题, 但问题不再出现了.