【问题标题】:TCPDF Laravel Email AttachmentsTCPDF Laravel 电子邮件附件
【发布时间】:2015-12-26 09:41:27
【问题描述】:

在 Laravel 5.1 中发送 PDF 附件时,TCPPDF 似乎不能很好地与 $dest 选项(“E”或“S”)一起使用。启动 Acrobat Reader 时,文件总是因错误而损坏(错误消息:...例如,它作为电子邮件附件发送并且未正确解码)。当我尝试另一个 PDF 生成器(如 DOMPDF)时,解码似乎没问题。

$pdf = new \TCPDF('P', 'in', 'LETTER', true, 'UTF-8', false);
$pdf->WriteHTML(view('emails.receipt_pdf', $receipt_data));
$attachment = $pdf->Output('Receipt - '.date("M-d-Y").'.pdf','E');

Mail::queue('emails.receipt_email', $receipt_data, function($message) use ($email, $attachment)
{
  $message->from('no-reply@website.com')
    ->to($email)
    ->subject('Receipt')
    ->attachData($attachment, 'Receipt.pdf');
});

【问题讨论】:

  • 您是否尝试过在本地保存该文件而不通过电子邮件发送,在这种情况下可以吗?
  • 是的,当我使用$dest 选项“D”或“I”时,PDF 可以完美呈现而不会损坏。
  • 尝试一件事,先将文件保存到本地存储,然后尝试从存储中发送该文件。不是来自 TCPDF 输出。
  • 是的,当我使用 $dest 选项“F”保存到文件系统,然后使用 Laravel 函数 attach('filepath.name') 附加时,文件没有损坏。为什么“E”或“S”似乎损坏了文件?也许我需要在发送之前对字符串/附件进行一些额外的准备。如果可能,我宁愿在发送之前不保存到文件系统。
  • 对于任何寻找这个的人,请在此处查看解决方案:stackoverflow.com/questions/6689567/…

标签: php email-attachments tcpdf laravel-5.1


【解决方案1】:

生成 pdf 时只需使用“S”选项。电子邮件相关的事情将由 Laravel 完成。

更新

$attachment = $pdf->Output('Receipt - '.date("M-d-Y").'.pdf','E');

$attachment = $pdf->Output('Receipt - '.date("M-d-Y").'.pdf','S');

另外,如果你使用 queue() 而不是 send(),它会因为附件而失败。要排队,请编写一个作业并与作业队列一起发送。

【讨论】:

    猜你喜欢
    • 2011-10-05
    • 2016-12-17
    • 2020-08-11
    • 1970-01-01
    • 2019-05-27
    • 2016-11-30
    • 2010-11-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多