DOMPDF - прикрепить созданный PDF к электронной почте - PullRequest
11 голосов
/ 31 октября 2011

Какой самый простой способ прикрепить PDF к электронному письму через 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();

Простодля пояснения - это используется в Joomla.

Оцените самый простой / быстрый способ, используя стандартную почтовую функцию PHP.

Cheers; -)

Ответы [ 2 ]

25 голосов
/ 17 августа 2012

Хорошо.Вы уже приняли ответ, но для любого, кто придет сюда, я думаю, что есть более простой способ, но это также не стандартная функция почты PHP, которая действительно не будет работать.Если вы можете получить грушевые пакеты Mail и 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.";
}
0 голосов
/ 31 октября 2011

В почтовой функции PHP нет «стандартного» метода вложения файлов. Это чрезвычайно простой интерфейс к SMTP-системе, который заставляет вас делать ВСЕ работу по присоединению файла самостоятельно.

Я настоятельно рекомендую использовать PHPMailer или Swiftmailer , чтобы сделать электронную почту для вас - это уменьшает тяжелую работу по генерации вашей собственной электронной почты MIME и вставке вложения (много-много строк код) до 5 строк.

Обратите внимание, что ни один из них не будет обрабатывать потоковый PDF из DOMPDF. Вам нужно сохранить PDF-файл во временный файл и прикрепить его,

...