MPDF Email Application Sends Blank PDF File

I successfully generated the PDF file using mpdf, which I checked by downloading the PDF file. However, when I send a PDF file as an email attachment, I get an empty PDF file with an "Out of memory" error from Adobe Reader. Below is my code:

<?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; ?> 

Are there any ideas as to why the PDF ends up empty after being sent as an email attachment? Thanks.

+2
source share
2 answers
 mpdf->WriteHTML($template); $content = $mpdf->Output($template, 'S'); 

You are mistaken, here you do not take the object on which your data is written.

please replace the code above to get the correct result.

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

use $content in your email

+1
source

If you can use swiftmailer, you can attach the PDF file created by MPDF via email, quite simply:

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

Here is the link .

0
source

All Articles