php - 合并pdf并作为电子邮件发送php
问题描述
我正在尝试将三个 pdf 文件与 PDFMerger 合并,然后使用 PHPmailer 发送合并的 pdf,而不将文件保存到服务器。
这是我的代码:
<?php
require_once '../PHPMailer-master/src/PHPMailer.php';
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
use PDFMerger\PDFMerger;
require_once 'PDFMerger.php';
$email = new PHPMailer();
$pdf = new PDFMerger;
$pdf->addPDF('samplepdfs/one.pdf', 'all');
$pdf->addPDF('samplepdfs/two.pdf', 'all');
$pdf->addPDF('samplepdfs/three.pdf', 'all');
$pdf->merge('string'); // generate the file
$email->SetFrom('kasserer@lst-beboerforening.dk'); //Name is optional
$email->Subject = 'Message Subject';
$email->Body = 'text to send!';
$email->AddAddress( 'krestensb@gmail.com' );
$email->addAttachment($pdf);
return $email->Send();
?>
我收到此错误:
[19-Jan-2020 17:11:55 UTC] PHP Warning: preg_match() expects parameter 2 to be string, object given in /home/lstbeboer/public_html/PHPMailer-master/src/PHPMailer.php on line 1736
[19-Jan-2020 17:11:55 UTC] PHP Fatal error: Uncaught Error: Class 'PHPMailer\PHPMailer\Exception' not found in /home/lstbeboer/public_html/PHPMailer-master/src/PHPMailer.php:2953
Stack trace:
#0 /home/lstbeboer/public_html/PDFMerger-master/sample.php(38): PHPMailer\PHPMailer\PHPMailer->addAttachment(Object(PDFMerger\PDFMerger))
#1 {main}
thrown in /home/lstbeboer/public_html/PHPMailer-master/src/PHPMailer.php on line 2953
非常感谢任何帮助!
BR克雷斯顿
解决方案
mode 中的merge()
方法string
应该将二进制 PDF 作为字符串返回,因此您需要获取返回值:
$pdfdata = $pdf->merge('string');
因为这个数据是在一个变量中而不是磁盘上的文件中,你可以通过以下addStringAttachment()
方法将它直接传递给 PHPMailer :
$email->addStringAttachment($pdfdata, 'document.pdf');
给它一个文件名就足以让 PHPMailer 自动设置编码和 MIME 类型。
推荐阅读
- php - move_uploaded_file() 需要 2 个参数,3 个给定
- scheme - Common Lisp 和 Scheme 的常用词汇
- c++ - 如何修复运行时错误:引用绑定到“value_type”类型的空指针(stl_vector.h)?
- spring-boot - 如何为 SecurityFilterAutoConfiguration 配置 DispatcherType?
- keras - 如何在 keras 中标记 cnn 并使用 mse 指标
- reactjs - Hook 不会重新渲染组件
- floating-point - 我需要从一个浮点数中选择某些数字。是否可以?如果是,如何?
- markdown - 生成 PDF 时出错。未定义的控制序列
- javascript - 如何简化我的 javascript 代码以隐藏/显示 para
- python - 在 Python 中使用 MySQL 将数据插入特定行