我使用TCPDF库来即时生成PDF(账单)并通过电子邮件发送。这一切正常,但我有一个奇怪的问题。当我发送电子邮件到Gmail帐户时,一切都很好,但是当我将它发送到我的邮件服务器时,我收到带有PDF的电子邮件,但是当我打开邮件时它不打开,我收到一条消息“Adobe阅读器无法打开file.pdf,因为它不是受支持的格式,或者是因为文件已被损坏。“ (电子邮件中的pdf是空白的)。使用TCPDF即时生成PDF
我的PDF保存到一个字符串,像这样:
$attachment = $pdf->Output("mypdf.pdf","E");
$attachment = chunk_split($attachment);
,并通过电子邮件发送出去,像这样:
$header .= "--".$separator.$eol;
$header .= "Content-Type: application/pdf; name='mypdf.pdf'".$eol;
$header .= "Content-Transfer-Encoding: base64".$eol;
$header .= "Content-Disposition= attachment".$eol.$eol;
$header .= $attachment;
我送用PHP邮件功能的电子邮件。
有趣的是,如果我迫使pdf的下载,像这样:
$附着= $ PDF->输出( “mypdf.pdf”, “d”);
该文件是确定的,并打开没有问题!但是,如果我将其更改回“E”,则不起作用。
另一个奇怪的是,有些时候我可以打开pdf(我在我的邮件服务器上)没有问题,但下次不会工作(即使我发送完全相同的电子邮件)。
有没有人知道发生了什么?我想避免将pdf保存在本地服务器上。
你编码了你的'$ attachement'吗? – DerVO 2012-01-17 10:22:19
$ pdf->输出(“mypdf.pdf”,“E”);返回一个base64编码的字符串。我也尝试编码它自己,但没有工作。 – blejzz 2012-01-17 10:24:34