DOMPDF - 将创建的PDF附加到电子邮件中

use*_*830 11 php pdf email joomla dompdf

通过DOMPDF将PDF附加到电子邮件的最简单方法是什么?

我正在使用的脚本的末尾(部分内容)如下:

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->render();    
//below to save the pdf file - not needed if emailing pdf
file_put_contents('/home/ststrave/public_html/pdf/STS_Brochure.pdf', $dompdf->output());
//below to open pdf in browser - required
$dompdf->stream("STS_Brochure_".rand(10,1000).".pdf", array("Attachment" => false));
jexit();
Run Code Online (Sandbox Code Playgroud)

只是为了澄清 - 这是在Joomla中使用的.

使用标准PHP邮件功能欣赏最简单/最快捷的方式.

干杯;-)

小智 25

好.你已经接受了答案,但是对于其他任何人来到这里,我认为有一种更简单的方法,但它也不是PHP的标准邮件功能,这实际上是行不通的.如果您可以获得邮件包邮件和Mail_mime,那么发送带附件的电子邮件非常容易.您也可以直接附加DomPDF输出而无需创建文件,如下所示:

$dompdf = new DOMPDF();
$dompdf->load_html($html);
$dompdf->set_paper("letter", "portrait" );
$dompdf->render();

$output = $dompdf->output();

$mm = new Mail_mime("\n");

$mm->setTxtBody($body);
$mm->addAttachment($output,'application/pdf','output.pdf', false);

$body = $mm->get();
$headers = $mm->headers(array('From'=>$from,'Subject'=>$subject));

$mail =& Mail::factory('mail');
if($mail->send($to,$headers,$body)){
    echo "Your message has been sent.";
}
Run Code Online (Sandbox Code Playgroud)


Mar*_*c B 0

PHP 的邮件功能没有“标准”文件附件方法。它是 SMTP 系统的一个极其简单的界面,迫使您自己完成附加文件的所有工作。

我强烈建议使用PHPMailerSwiftmailer为您发送电子邮件 - 它可以将生成您自己的 MIME 电子邮件和插入附件(许多行代码)的繁重工作减少到总共大约 5 行。

请注意,它们都不会处理来自 DOMPDF 的流式 PDF。您必须将 PDF 保存到临时文件并附加该文件,