2011-10-31 7 views
10

ईमेल करने के लिए बनाए गए पीडीएफ संलग्न करें DOMPDF के माध्यम से किसी ईमेल को पीडीएफ संलग्न करने का सबसे आसान तरीका क्या है?DOMPDF -

मेरी स्क्रिप्ट के अंत मैं (यह का हिस्सा) का उपयोग कर रहा नीचे है:

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

बस स्पष्टीकरण के लिए - यह जूमला में इस्तेमाल किया जा रहा है।

मानक PHP मेल फ़ंक्शन का उपयोग करके सबसे सरल/तेज़ तरीका की सराहना करें।

चीयर्स ;-)

+0

आप उपयोग कर को देखा है [जूमला के अंतर्निहित मेल वस्तु] (http://docs.joomla.org/How_to_send_email_from_components)? – BrianS

उत्तर

0

PHP के मेल समारोह कोई "मानक" फ़ाइल अनुलग्नक विधि है। यह एसएमटीपी सिस्टम के लिए एक बेहद बेरबोन इंटरफ़ेस है जो आपको फ़ाइल को संलग्न करने के सभी कार्यों को करने के लिए मजबूर करता है।

मैं दृढ़ता से PHPMailer या Swiftmailer का उपयोग कर आप के लिए ईमेल करने के लिए सुझाव है - यह अपनी खुद की माइम ईमेल पैदा करने और लगाव (कोड के कई कई लाइनों) डालने की भारी घुरघुराना काम कम कर देता है के लिए करता है शायद 5 लाइनों कुल।

ध्यान दें कि उनमें से कोई भी डीओएमपीडीएफ से स्ट्रीम किए गए पीडीएफ को संभाल नहीं पाएगा। आपको पीडीएफ को एक अस्थायी फ़ाइल में सहेजना होगा और उसे संलग्न करना होगा,

+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."; 
} 

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^