2011-10-31 126 views
10

通過DOMPDF將PDF附加到電子郵件的最簡單方法是什麼?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(); 

只是爲了澄清 - 這是正在使用的Joomla。

欣賞使用標準PHP郵件功能的最簡單/最快捷的方式。

乾杯;-)

+0

你看着用[Joomla的內置郵件對象(http://docs.joomla.org/How_to_send_email_from_components)? – BrianS

回答

0

PHP的郵件功能沒有 「標準」 文件附件方法。這是SMTP系統的一個非常準系統的接口,它迫使你自己完成附加文件的所有工作。

我強烈建議使用PHPMailerSwiftmailer爲您做電子郵件 - 它可以減少生成您自己的MIME電子郵件和插入附件(許多代碼行)總共5行的繁重工作。

請注意,它們都不會處理來自DOMPDF的流式PDF。您必須將PDF保存到臨時文件並附上該文件,

+0

感謝您的回答......那麼我該怎麼做? – user991830

23

好的。你已經接受了一個答案,但是對於任何來到這裏的人來說,我認爲有一個更簡單的方法,但它也不是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."; 
} 
相關問題