Каков самый простой способ прикрепить 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 не имеет стандартного метода прикрепления файлов. Это очень простой интерфейс для SMTP-системы, который заставляет вас делать ВСЕ работу по прикреплению файла самостоятельно.
Я настоятельно рекомендую использовать PHPMailer или Swiftmailer для создания электронной почты для вас – это уменьшает тяжёлую работу при создании собственной электронной почты MIME и вставку вложения (многие много строк кода), возможно, всего 5 строк.
Обратите внимание, что ни один из них не будет обрабатывать потоковый PDF-файл из DOMPDF. Вам нужно будет сохранить PDF во временный файл и приложить его,
ОК. Вы уже приняли ответ, но для других, кто пришел сюда, я думаю, что есть более простой способ, но это также не стандартная функция почты 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."; }