я использую fpdf для создания PDF с PHP. все в порядке. но я хочу отправить PDF-файл в Outlook.
я использую $pdf->Output('file.pdf','D');
это работает. Я хочу прикрепить этот файл к Microsoft Outlook.
Как я могу это?
Что-то, что вы можете сделать, это сохранить файл во временную папку на сервере, а затем использовать что-то вроде PHPMailer прикрепить этот сохраненный файл к электронной почте. PHPMailer намного проще в использовании для вложений, чем встроенный в PHP mail
функция.
Вы можете временно сохранить PDF-файл несколькими способами. Вот один из них:
$tempfilename = time().'.pdf';
$pdf->Output($tempfilename,'F');
Затем в PHPMailer вы можете прикрепить его так:
$mail->addAttachment($tempfilename);
И тогда, когда вы закончите, вы можете удалить временный файл с сервера.
unlink($tempfilename);
Если PHPMailer по какой-либо причине невозможно использовать в вашей ситуации, вы можете использовать встроенный PHP mail
функция. Если вы работаете с новым файлом или небольшим файлом, где стоимость добавления PHPMailer относительно невелика, сделайте это, если сможете. В противном случае вы можете попробовать добавить такой код в ваш $headers
, Адаптировано из ответа об использовании mail
отправлять вложения:
// Generate a random hash to send mixed content
$sep = md5(time());
// End of line
$eol = PHP_EOL;
// Content of file
$content = file_get_contents($tempfilename);
$content = chunk_split(base64_encode($content));
// Add attachment to headers
$headers .= "--" . $sep . $eol;
$headers .= "Content-Type: application/octet-stream; name=\"" . $tempfilename . "\"" . $eol;
$headers .= "Content-Transfer-Encoding: base64" . $eol;
$headers .= "Content-Disposition: attachment" . $eol . $eol;
$headers .= $content . $eol . $eol;
$headers .= "--" . $sep . "--";
Других решений пока нет …