【问题标题】:Phpmailer add PDF attachment from a linkPhpmailer 从链接添加 PDF 附件
【发布时间】:2017-02-15 20:05:01
【问题描述】:

我正在使用 PHPMailer 发送自动电子邮件(显然使用 PHP 作为编程语言)。 我想添加一个用 TCPdf 生成的 PDF 附件。 不幸的是,我无法在使用 PHPMailer 的 php 页面内生成 PDF,也无法创建生成它的函数。 我只能使用链接来生成它,如下所示: www.mypage.com/app-pdf/link_generate_pdf.php?IDToGenerate=131&PDFOutput=I

我在想我可以调用 PDFOutput=S 的页面,并以某种方式“返回”PDF 的文本并将其添加为附件。 否则,我可以使用 PDFOutput=F 调用页面并将其保存到临时文件夹,然后将其附加到电子邮件中。

问题是我不知道如何“调用”一个页面,因为它是一个函数并返回调用页面实际返回的内容。

你有什么建议吗? 谢谢


编辑:我现在明白问题所在了!问题是 URL 只能从认证(登录页面)访问。我认为当我登录时,脚本会自动读取页面。我该如何解决这个问题?

【问题讨论】:

  • 使用file_get_contents将PDF另存为临时文件,然后附加?
  • 你提到使用PDFOutput=S,你试过了吗?似乎它会起作用。当你使用AddStringAttachment(generatePDF.php)
  • 不幸的是它不起作用,每次都是空白和损坏的 pdf

标签: php phpmailer tcpdf


【解决方案1】:

用这个先把文件保存到服务器上再附加

file_put_contents("Tmpfile.pdf", fopen("http://example.com/file.pdf", 'r'));

附加为

 $mail->AddAttachment('path_to_pdf/Tmpfile.pdf', $name = 'Name_of_pdf_file', 
 $encoding = 'base64', $type = 'application/pdf');

希望对你有帮助

编辑:试试这个。在这里工作正常

file_put_contents("path_to_pdf/Tmpfile.pdf", 
file_get_contents("http://example.com/file.pdf"));

【讨论】:

  • 谢谢,但它不起作用,它每次保存一个空白损坏的pdf。我尝试使用静态 pdf 链接,效果很好。我认为它不适用于“生成”链接。
  • 谢谢 Tunde!使用 CURL 进行身份验证后,我使用了您的解决方案并且效果很好!
猜你喜欢
  • 1970-01-01
  • 2014-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-23
相关资源
最近更新 更多