2011-10-31 17 views
10

DOMPDF aracılığıyla bir e-postaya PDF eklemenin en kolay yolu nedir?DOMPDF - oluşturulan PDF'yi e-postaya ekleyin

I (bunun bir parçası) kullanıyorum Senaryomun sonu aşağıdaki gibidir:

$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(); 

Sadece açıklama - Bu Joomla kullanılıyor.

Standart PHP posta işlevini kullanarak en basit/hızlı yolu takdir edin.

Cheers ;-)

+0

kullandığınız baktınız mı [Joomla yerleşik posta nesne] (http://docs.joomla.org/How_to_send_email_from_components)? – BrianS

cevap

0

PHP'nin posta işlevi yok "standart" dosya eki yöntemi vardır. SMTP sistemine son derece barebone bir arabirim var, bu da sizi TÜM bir dosya ekleme işini yapmaya zorluyor.

şiddetle sizin için e-posta yapmak PHPMailer veya Swiftmailer kullanarak önermek - bu kendi MIME e-posta oluşturma ve eki (kod çok çok hat) ekleyerek ağır hırıltı çalışmalarını azaltan için yaptığı belki 5 satır toplam.

Hiçbirinin DOMPDF'den aktarılan bir PDF dosyasını işleyemeyeceğini unutmayın. PDF'yi geçici bir dosyaya kaydetmeniz ve iliştirmeniz gerekiyorsa, bu

+0

Cevabınız için teşekkürler ... nasıl yapacağım? – user991830

23

Tamam. Zaten bir cevabı kabul ettiniz, ancak buraya gelen herkes için, daha kolay bir yol olduğunu düşünüyorum, ama aynı zamanda işe yaramayacak olan PHP'nin standart posta işlevi de değil. Eğer armut paketleri Mail ve Mail_mime alabilirsiniz, ekleri ile e-posta göndermek gerçekten çok kolay. Ayrıca doğrudan böylece gibi bir dosyayı yaratmadan DOMPDF çıkışını ekleyebilirsiniz:

$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."; 
} 
İlgili konular