PHP 发送到 Outlook PDF 文件

标签 php pdf outlook fpdf

我使用 fpdf 用 php 创建 pdf。一切都好。但我想将 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 to send attachments 的回答:

//  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 . "--";

关于PHP 发送到 Outlook PDF 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27358410/

相关文章:

php - EXEC 功能未按预期方式工作

.net - 使用 ITextSharp 和 PDFSharp 渲染 PDF 表的性能 Not Acceptable

c# - axAcroPDFLib 在关闭问题 C#

ios - 用于 GetUserAvailability 的 Office365 API

ruby-on-rails - 将 Oulook/Exchange 任务与基于 Linux 的 Rails 集成

events - 在 Outlook 中捕获对 MailItem.SendUsingAccount 属性的更改

php - 从数据库格式化日期

php - 使用isset函数使PHP崩溃

php - 设置来自第三方域的 cookie

java - 当我在没有 .pdf 内容 webview 的情况下加载时没有可用的预览