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




email joomla (2)

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

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

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

https://code.i-harness.com

Каков самый простой способ прикрепить 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.

Приветствия ;-)


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






dompdf