我正在尝试使用Laravel发送电子邮件并将生成的PDF附加到电子邮件中。电子邮件已发送,但PDF未被发送。
注意事项: 使用Larvel版本5.5 PHP版本>=7.0.0 我正在使用的生成pdf库:https://github.com/niklasravnsborg/laravel-pdf
以下是代码:
<?php
namespace Portal\Mail;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;
use niklasravnsborg\LaravelPdf\Facades\Pdf as PDF;
class PreApprovalEmail extends Mailable
{
use Queueable, SerializesModels;
public $name;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($name)
{
$this->name = $name;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
$this->subject('Pre approval letter');
return $this->view('emails.emailTemplate')->attachData($this->createPDF(), 'generated.pdf', [
'mime' => 'application/pdf',
]);
}
public function createPDF()
{
$data = array(
// data
);
$pdf = PDF::loadView('emails.generatablePDF', $data);
return $pdf->stream('document.pdf');
}
}
这是我在routes/web.php文件中的路由:
Route::get('/samplemail', function () {
Mail::to("<my_email>@protonmail.com")->send(new PreApprovalEmail("test"));
return view('emails.generatablePDF')
});
根据文档(https://laravel.com/docs/5.5/mail),我应该收到包括附件在内的正确电子邮件。我收到了电子邮件,但没有附件。我该如何解决这个问题?