Я использую следующий код, чтобы прикрепить сгенерированный PDF к почте
$mpdf=new mPDF();
$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 whit 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"; //plain
$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',);
exit;
Но я обнаружил, что это может быть разработано для автоматической отправки электронной почты через PHP-Mailer. Но в моем случае это должно работать как обычный mailto
ссылка в HTML, поэтому сообщение должно быть подготовлено и открыто в Outlook (или программе по вашему выбору), а затем вы можете просмотреть его или просто нажмите кнопку отправить.
Как это можно решить
mailto:
не поддерживает вложения.
Есть возможность запустить почтовый клиент по умолчанию с параметрами, но не передавать вложения.
Других решений пока нет …