You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将pdf_receipt.php转换为PDF并通过PHP邮件附带发送?

将PHP生成的PDF作为邮件附件发送方案

当然可以实现!你现在直接附加pdf_receipt.php文件的话,收件人拿到的要么是PHP源码,要么是网页形式的输出,并不是真正的PDF文档。咱们得先让FPDF把你的PHP脚本生成的PDF内容保存成实际的PDF文件,再把这个文件作为附件发送,具体操作步骤如下:

  • 第一步:用FPDF生成并保存PDF文件
    你的pdf_receipt.php应该是用来绘制PDF内容的脚本对吧?那在脚本里完成所有PDF内容的绘制后(比如添加页面、写入文字、插入表格等),调用FPDF的Output()方法,将PDF保存到服务器的指定路径。参数里第一个用'F'表示保存为文件,第二个是保存的路径和文件名:

    // 假设你已经完成了PDF内容的绘制,比如:
    $pdf = new FPDF();
    $pdf->AddPage();
    $pdf->SetFont('Arial','B',16);
    $pdf->Cell(40,10,'Receipt Content');
    // 保存PDF到指定路径
    $pdf->Output('F', 'reports/pdf_receipt.pdf');
    

    注意:要确保reports目录有写入权限,不然服务器无法生成并保存这个PDF文件。

  • 第二步:修改邮件附件代码
    现在把邮件附件的路径改成刚才生成的PDF文件,同时指定正确的MIME类型(application/pdf),这样邮件客户端能正确识别这是PDF文件:

    $mailer->AddAttachment("reports/pdf_receipt.pdf", "pdf_receipt.pdf", 'base64', 'application/pdf');
    
  • 第三步:可选清理临时文件
    如果不需要在服务器上保留这个PDF文件,发送完邮件后可以用unlink()函数删除它,避免占用服务器存储空间:

    // 确保邮件发送成功后再执行删除
    if ($mailer->Send()) {
        unlink('reports/pdf_receipt.pdf');
    }
    

小提示

如果你的pdf_receipt.php是单独的脚本,记得在调用它生成PDF的时候,不要输出任何额外的内容(比如echo、空格、换行),否则生成的PDF会损坏,无法正常打开。

内容的提问来源于stack exchange,提问作者John English

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 07:47:28