DOMPDF – collega PDF creato per e-mail

Qual è il modo più semplice per albind un PDF a una e-mail tramite DOMPDF?

La fine del mio script che sto usando (parte di esso) è qui sotto:

$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", arrays("Attachment" => false)); jexit(); 

Solo per chiarimenti: questo è in uso in Joomla.

Apprezzare il modo più semplice / veloce utilizzando la function di posta PHP standard.

Saluti 😉

La function di posta di PHP non ha un metodo di collegamento file "standard". È un'interface estremamente semplice per il sistema SMTP che ti obbliga a fare TUTTO il lavoro di albind un file da solo.

Suggerisco caldamente di usare PHPMailer o Swiftmailer per fare l'e-mail per te – riduce il pesante lavoro di generazione della tua e-mail MIME e inserendo l'allegato (molte molte righe di codice) a circa 5 righe in totale.

Nota che nessuno di loro gestirà un PDF in streaming da DOMPDF. Dovrai salvare il PDF in un file temporaneo e allegarlo,

Ok. Hai già accettato una risposta, ma per chiunque altro venga qui, penso che ci sia un modo più semplice, ma non è nemless la function di posta standard di PHP, che in realtà non functionrà. Se riesci a get i pacchetti pera Mail e Mail_mime, è davvero facile submit e-mail con allegati. Puoi anche colbind direttamente l'output DomPDF senza creare un file, in questo modo:

 $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(arrays('From'=>$from,'Subject'=>$subject)); $mail =& Mail::factory('mail'); if($mail->send($to,$headers,$body)){ echo "Your message has been sent."; }