如何在Laravel的电子邮件中使用DOMPDF附加PDF

时间:2018-07-15 19:40:44

标签: php laravel pdf laravel-5

嗨,我正尝试将pdf直接附加到电子邮件,而不使用laravel邮件功能存储到存储并将其发送给用户。一切都按预期工作正常,但是问题是pdf而不是附件,因为base64编码的电子邮件内容出现了。

有人可以告诉我我做错了什么吗?

这是我的代码。这是内部邮件

$subject ='Hello! Your invoice is here';

        $data['invoice_id']=$this->content['invoice_id'];

        $pdf = PDF::loadView('frontend.pages.invoice.invoice',$data);


        return $this->from('info@examplecompany.com')
            ->subject($subject)
            ->view('backend.emailtemplates.invoiceEmail')
            ->attachData($pdf->output(),'name.pdf', [
                'mime' => 'application/pdf',
            ]) ;

我正在遵循这个How to attach a PDF using barryvdh/laravel-dompdf into an email in Laravel线程,即使我按照其答案所建议的方式进行操作,也仍然无法正常工作。

有人可以帮我吗? 谢谢。

2 个答案:

答案 0 :(得分:0)

建议将此包用于pdf。

https://github.com/niklasravnsborg/laravel-pdf

您可以轻松管理pdf导出:

  • output():将PDF输出为字符串。
  • 保存($ filename):将PDF保存到文件
  • download($ filename):使PDF可被用户下载。
  • stream($ filename):返回带有PDF的响应以在浏览器中显示。

答案 1 :(得分:0)

我认为您想将pdf作为附件发送而不将其保存在系统中。

您可以参考以下代码来做到这一点。

 $data["email"]='useremail@gmail.com';
            $data["client_name"]='user_name';
            $data["subject"]='sending pdf as attachment';

            //Generating PDF with all the post details

            $pdf = PDF::loadView('userdata');  // this view file will be converted to PDF

            //Sending Mail to the corresponding user

            Mail::send([], $data, function($message)use($data,$pdf) {
            $message->to($data["email"], $data["client_name"])
            ->subject($data["subject"])
            ->attachData($pdf->output(), 'Your_Post_Detail.pdf', [
                       'mime' => 'application/pdf',
                   ])
            ->setBody('Hi, welcome user! this is the body of the mail');
            });

希望它对您有所帮助。

为更好地理解您可以阅读本文

how to send pdf as an attachment in email in laravel