My sample coding to create pdf using mpdf is, (it works fine)
<? require_once('../mpdf.php');
$mpdf = new mPDF();
$mpdf->WriteHTML('<p>Your first taste of creating PDF from HTML</p>');
$mpdf->Output();
exit;
?>
My sample coding to send email:
$em =//email address ;
$subject = //subject;
$message = //message;
mail($em, $subject, $message, "From: MyDomain Webmaster<[email protected]>\nX-Mailer: PHP/" . phpversion());
My problem is that the pdf is created and is opened in the browser directly, how can send the pdf file as email attachment?
If possible please help me with the code or just help me with some suggestions, I will code it myself.
Thanks!
From The Wayback Machine (link above): https://web.archive.org/web/20151004121531/http://mpdf1.com/manual/index.php?tid=373
<?php
include("../mpdf.php"); //Include mPDF Class
$mpdf=new mPDF(); // Create new mPDF Document
//Beginning Buffer to save PHP variables and HTML tags
ob_start();
// Function Date
$day = date('d');
$month = date('m');
$year = date('Y');
switch ($month)
{
case 1: $month = "January"; break;
case 2: $month = "February"; break;
case 3: $month = "March"; break;
case 4: $month = "April"; break;
case 5: $month = "May"; break;
case 6: $month = "June"; break;
case 7: $month = "July"; break;
case 8: $month = "August"; break;
case 9: $month = "September"; break;
case 10: $month = "October"; break;
case 11: $month = "November"; break;
case 12: $month = "December"; break;
}
echo "Hello World
Today is $month $day, $year";
$html = ob_get_contents();
ob_end_clean();
//Here convert the encode for UTF-8, if you prefer the ISO-8859-1 just change for $mpdf->WriteHTML($html);
$mpdf->WriteHTML(utf8_encode($html));
$content = $mpdf->Output('', 'S');
$content = chunk_split(base64_encode($content));
$mailto = '[email protected]'; //Mailto here
$from_name = 'ACME Corps Ltd'; //Name of sender mail
$from_mail = '[email protected]'; //Mailfrom here
$subject = 'subjecthere';
$message = 'mailmessage';
$filename = "yourfilename-".date("d-m-Y_H-i",time()); //Your Filename with local date and time
//Headers of PDF and e-mail
$boundary = "XYZ-" . date("dmYis") . "-ZYX";
$header = "--$boundary\r\n";
$header .= "Content-Transfer-Encoding: 8bits\r\n";
$header .= "Content-Type: text/html; charset=ISO-8859-1\r\n\r\n"; // or utf-8
$header .= "$message\r\n";
$header .= "--$boundary\r\n";
$header .= "Content-Type: application/pdf; name=\"".$filename."\"\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n\r\n";
$header .= "$content\r\n";
$header .= "--$boundary--\r\n";
$header2 = "MIME-Version: 1.0\r\n";
$header2 .= "From: ".$from_name." \r\n";
$header2 .= "Return-Path: $from_mail\r\n";
$header2 .= "Content-type: multipart/mixed; boundary=\"$boundary\"\r\n";
$header2 .= "$boundary\r\n";
mail($mailto,$subject,$header,$header2, "-r".$from_mail);
$mpdf->Output($filename ,'I');
exit;
?>