Intereting Posts
XML-файл Parse RDF для получения всех rdf: о значениях Имитировать конструкцию языка php-массива или проанализировать с помощью регулярного выражения? Разница между двумя командами выборки товаров для покупок в Magento Как получить доступ к PHP с командной строкой в ​​Windows? PHP Stomp: чтение всех сообщений в очереди Как мне получить доступ к этому объекту с помощью дефисного имени? Является ли это разумным способом обработки getters / seters в классе PHP? Можно ли написать строго типизированный PHP-код? Удалить последнюю запятую PHP PHP в Windows с XAMPP работает в 100 раз слишком медленно Не удается выполнить проверку подлинности на mongodb с помощью PHP Ошибка при печати Gzzle Curl 60 SSL не может получить локальный эмитент Переписать URL с двумя или более параметрами Узнайте, соответствует ли период времени текущему времени получить массив всех атрибутов продуктов в magento

Приложение электронной почты MPDF отправляет пустой PDF-файл

Я успешно создал PDF-файл, используя mpdf, который я проверил, загрузив PDF-файл. Однако, когда я отправляю PDF-файл в виде вложения электронной почты, я получаю пустой PDF-файл с ошибкой «Недостаточно памяти» от Adobe Reader. Ниже мой код:

<?php include("MPDF57/mpdf.php"); ob_start(); include "Receipt_Template_2.php"; $template = ob_get_contents(); ob_end_clean(); $mpdf=new mPDF('','A4','','',32,25,27,25,16,13,'L'); mpdf->WriteHTML($template); $content = $mpdf->Output($template, 'S'); $content = chunk_split(base64_encode($content)); $mailto = 'sample@sample.com'; $from_name = 'KIREA'; $from_mail = 'NoReply@kirea.ca'; $uid = md5(uniqid(time())); $subject = 'KIREA Donation Receipt'; $message = "Thank you for your donation!\n\nAttached is the receipt concerning the donation. If you have any questions, please e-mail us at receipts@kirea.ca";; $filename = $pdfName; $header = "From: ".$from_name." <".$from_mail.">\n"; $header .= "MIME-Version: 1.0\n"; $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\n"; $header .= "This is a multi-part message in MIME format.\n"; $header .= "--".$uid."\r\n"; $header .= "Content-type:text/plain; charset=iso-8859-1\n"; $header .= "Content-Transfer-Encoding: 7bit\n"; $header .= $message."\n\r\n"; $header .= "--".$uid."\n"; $header .= "Content-Type: application/pdf; name=\"".$filename."\"\n"; $header .= "Content-Transfer-Encoding: base64\n"; $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\n\n"; $header .= $content."\n\n"; $header .= "--".$uid."--"; $is_sent = @mail($mailto, $subject, "", $header); $mpdf->Output(); exit; ?> 

Есть ли какие-либо идеи относительно того, почему PDF заканчивается пустым после отправки в виде вложения электронной почты? Спасибо.

 mpdf->WriteHTML($template); $content = $mpdf->Output($template, 'S'); 

Вы ошибаетесь, здесь вы не берете объект, на котором написаны ваши данные

пожалуйста, замените ниже код выше, чтобы получить правильный результат.

 $pdfdata=mpdf->WriteHTML($template); $content = $mpdf->Output('' , 'S'); 

используйте $content в своем письме

Если вы можете использовать swiftmailer, вы можете прикрепить PDF-файл, созданный MPDF, по электронной почте, довольно просто:

 <?php require_once $swift_mailer_path.'swift_required.php'; $transporter = Swift_SmtpTransport::newInstance($smtp_host, $smtp_port, $smtp_protocol) ->setUsername($smtp_username') ->setPassword($smtp_password'); $mailer = Swift_Mailer::newInstance($transporter); $message = Swift_Message::newInstance('Email Subject') ->setFrom(array($from_email => $from_name)) ->setTo($to_email) ->setBody($email_body); $attachment = Swift_Attachment::newInstance($mpdf->Output($pdf_path, "S"), $pdf_file_name, 'application/pdf'); $message->attach($attachment); $message->setContentType("text/html"); $result = $mailer->send($message); ?> 

Вот ссылка .