使用 phpmailer 发送 TCPDF 生成的 pdf

Send TCPDF generated pdf with phpmailer

我正在生成一个 pdf 文件而不将它保存到磁盘:

$attachment = $this->pdf->Output('e-tickets.pdf', 'S');

根据 TCPDF 这应该 return 一个包含 pdf 文件的字符串。

但是用 PHPMailer 发送它会导致文件损坏:

$mail->AddStringAttachment($attachment, 'e-tickets.pdf', 'base64', 'application/pdf');

我尝试了以下替代方案(以及所有可能的组合):

$attachment = $this->pdf->Output('e-tickets.pdf', 'E');

$mail->AddStringAttachment($attachment, 'e-tickets.pdf');

没有任何结果导致工作 pdf 文件。 该文件不为空(它有一个文件大小),当我在 TCPDF 中使用 D 选项时,文件下载正常。

Whosebug 上的所有其他主题对我没有帮助。它们都很旧,我猜使用的是旧版本。

有什么建议吗?

你试过了吗:

$attachment = $this->pdf->Output('e-tickets.pdf', 'E');
$attachment = chunk_split($attachment);
$mail->AddStringAttachment($attachment, 'e-tickets.pdf');

我自己解决了。这真的是一个愚蠢的错误

我在 class 中使用 $this->pdf->Output('e-tickets.pdf', 'E');

我将其更改为 return $this->pdf->Output('e-tickets.pdf', 'E'); 并解决了问题。

新鲜的一天,新鲜的事物会有所帮助。

感谢您的帮助