4

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<admin@mydomain.com>\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!

A Mohammed Hussain
  • 235
  • 1
  • 9
  • 20

1 Answers1

1

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 = 'mailto@mailto.com'; //Mailto here
$from_name = 'ACME Corps Ltd'; //Name of sender mail
$from_mail = 'mailfrom@mailfrom.com'; //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;

?>
HAW
  • 11
  • 2