2017-02-15 155 views
1

我使用PHPMailer发送自动邮件(显然使用PHP作为编程语言)。 我想添加一个用TCPdf生成的PDF附件。 不幸的是,我不能在PHP页面中使用PHPMailer生成PDF,并且我无法创建生成它的函数。 我只能用一个链接来产生,就像这样: www.mypage.com/app-pdf/link_generate_pdf.php?IDToGenerate=131 & PDFOutput = IPhpmailer从链接添加PDF附件

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

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

你有什么建议吗? 谢谢


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

+1

使用['file_get_contents'(https://secure.php.net/manual/en/function.file-get-contents.php)将PDF保存为一个临时文件然后附加它? – Passerby

+1

您提到使用'PDFOutput = S',你试过了吗?它似乎会起作用。当你使用'AddStringAttachment(generatePDF.php)' – BizzyBob

+0

不幸的是它不工作,每次都是空白和损坏的pdf – Andrea

回答

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")); 
+0

谢谢,但它不起作用,它每次都会节省空白的pdf。我尝试了一个静态的pdf链接,它效果很好。我认为它不适用于“生成”链接。 – Andrea

+0

@Andrea查看编辑 –

+0

谢谢Tunde! 当我通过CURL认证后,我使用了您的解决方案并且完美地工作! – Andrea