使用 PHPMailer 将 pdf 输出作为 stringAttachment 发送
Send pdf output as stringAttachment using PHPMailer
我正在尝试使用 PHPMailer 的 addStringAttachment 方法附加文件。
我使用以下方法从 TCPDF 生成了 pdf:
$b64_enc_doc = $pdf->Output($file_name, 'E');
然后在发送电子邮件的脚本中,我有
...
$mail->addStringAttachment($b64_enc_doc, $file_name)
但是,当我尝试打开 PDF 附件时,它已损坏。
我尝试调试从 TCPDF 生成的 PDF 的输出,它看起来类似于:
Content-Type: application/pdf;
name="file.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="file.pdf"
JVBERi0xLjcKJeLjz9MKMjEgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAxIDAgUiAvTGFz
dE1vZGlmaWVkIChEOjIwMjIwMTA0MTMwODQ2KzAwJzAwJykgL1Jlc291cmNlcyAyIDAgUiAvTWVk
aWFCb3ggWzAuMDAwMDAwIDAuMDAwMDAwIDU5NS4yNzYwMDAgODQxLjg5MDAwMF0gL0Nyb3BCb3gg
WzAuMDAwMDAwIDAuMDAwMDAwIDU5NS4yNzYwMDAgODQxLjg5MDAwMF0gL0JsZWVkQm94IFswLjAw
MDAwMCAwLjAwMDAwMCA1OTUuMjc2MDAwIDg0MS44OTAwMDBdIC9UcmltQm94IFswLjAwMDAwMCAw
LjAwMDAwMCA1OTUuMjc2MDAwIDg0MS44OTAwMDBdIC9BcnRCb3ggWzAuMDAwMDAwIDAuMDAwMDAw
IDU5NS4yNzYwMDAgODQxL...
请不要将文件保存到服务器,而是将文件直接发送到用户的电子邮件。请帮忙。
谢谢!
您没有显示您正在使用的代码,但该字符串是电子邮件的片段,而不是应有的 PDF 二进制 PDF 字符串。
你的代码应该是这样的(我不记得 tcpdf 的语法):
//Render the PDF to a string in memory
$pdf = $tcpdf->output('S');
$mail->addStringAttachment($pdf, 'file.pdf');
PHPMailer 会处理剩下的事情。
我正在尝试使用 PHPMailer 的 addStringAttachment 方法附加文件。
我使用以下方法从 TCPDF 生成了 pdf:
$b64_enc_doc = $pdf->Output($file_name, 'E');
然后在发送电子邮件的脚本中,我有
...
$mail->addStringAttachment($b64_enc_doc, $file_name)
但是,当我尝试打开 PDF 附件时,它已损坏。
我尝试调试从 TCPDF 生成的 PDF 的输出,它看起来类似于:
Content-Type: application/pdf;
name="file.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="file.pdf"
JVBERi0xLjcKJeLjz9MKMjEgMCBvYmoKPDwgL1R5cGUgL1BhZ2UgL1BhcmVudCAxIDAgUiAvTGFz
dE1vZGlmaWVkIChEOjIwMjIwMTA0MTMwODQ2KzAwJzAwJykgL1Jlc291cmNlcyAyIDAgUiAvTWVk
aWFCb3ggWzAuMDAwMDAwIDAuMDAwMDAwIDU5NS4yNzYwMDAgODQxLjg5MDAwMF0gL0Nyb3BCb3gg
WzAuMDAwMDAwIDAuMDAwMDAwIDU5NS4yNzYwMDAgODQxLjg5MDAwMF0gL0JsZWVkQm94IFswLjAw
MDAwMCAwLjAwMDAwMCA1OTUuMjc2MDAwIDg0MS44OTAwMDBdIC9UcmltQm94IFswLjAwMDAwMCAw
LjAwMDAwMCA1OTUuMjc2MDAwIDg0MS44OTAwMDBdIC9BcnRCb3ggWzAuMDAwMDAwIDAuMDAwMDAw
IDU5NS4yNzYwMDAgODQxL...
请不要将文件保存到服务器,而是将文件直接发送到用户的电子邮件。请帮忙。 谢谢!
您没有显示您正在使用的代码,但该字符串是电子邮件的片段,而不是应有的 PDF 二进制 PDF 字符串。
你的代码应该是这样的(我不记得 tcpdf 的语法):
//Render the PDF to a string in memory
$pdf = $tcpdf->output('S');
$mail->addStringAttachment($pdf, 'file.pdf');
PHPMailer 会处理剩下的事情。