2017-02-15 9 views
1

Я использую PHPMailer для отправки автоматической электронной почты (очевидно, используя PHP в качестве языка программирования). Я хотел бы добавить вложение PDF, сгенерированное с помощью TCPdf. К сожалению, я не могу создать PDF-файл внутри php-страницы, где я использую PHPMailer, и я не могу создать функцию, которая ее генерирует. я могу использовать только ссылку, чтобы создать его, как это: www.mypage.com/app-pdf/link_generate_pdf.php?IDToGenerate=131 & PDFOutput = IPhpmailer добавить PDF-приложение по ссылке

Я думал, что я могу вспомнить страницу с PDFOutput = S и «вернуть» в некотором роде текст PDF и добавить его в качестве вложения. В противном случае я могу вызвать страницу с помощью PDFOutput = F и сохранить ее в папке temp, а затем прикрепить ее к письму.

Проблема в том, что я не знаю, как «вызвать» страницу как функцию и вернуть то, что возвращает страница отзыва.

У вас есть предложение? Спасибо


редактировать: Теперь я понимаю эту проблему! Проблема в том, что URL-адрес доступен только с помощью авторизации (страница входа в систему). Я думал, что, когда я вошел в систему, сценарий автоматически мог читать страницу. Как я могу это решить?

+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'); 

Надеется, что это помогает

Edit: Попробуйте это. отлично работает здесь

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

Смежные вопросы