DOMPDF - добавьте созданный PDF в электронную почту

Каков самый простой способ подключить PDF к электронной почте через DOMPDF?

Конец моего script, который я использую (его часть), находится ниже:

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

Ответ 1

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

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

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

Ответ 2

Ok. Вы уже приняли ответ, но для всех, кто придет сюда, я думаю, что есть более простой способ, но это также не стандартная функция почты 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.";
}