2012-08-28 109 views
1

我有一些問題試圖讓SwiftMailer附加一個我用FPDF創建的文件。基本上我有一個名爲createPDF.php的頁面,它是根據URL中的ID號動態生成的。此頁面設置爲使用$ pdf-> Output(「filename.pdf」,I);以內聯方式輸出PDF。我想要做的就是能夠通過簡單地調用我的createPDF.php?id = xxx鏈接將此文件附加到使用SwiftMailer從另一個頁面發送的電子郵件。PHP Swift梅勒附加FPDF問題

從哪裏我想從,一切正常發送電子郵件,但附件的PHP頁面。它附加了一些東西,但不是我想要的東西,在我的本地機器上的PDF查看器中不可見。具體到安裝文件的行是:

- >連接(Swift_Attachment :: fromPath( 'createPDF.php來ID = XXXX?'))

這並不工作,但肯定的是,它必須能夠而無需通過FPDF將文件保存在我的Web服務器上。

這可能嗎?如果是這樣,怎麼樣?

謝謝!

回答

0

好的,所以我只是想通了。

基本上我做了一個新的PHP文件,大部分我createPDF.php來的文件作爲一個功能,只需在兩個變量傳遞給函數作爲我的$ id和$輸出變量。 $ output只是FPDF輸出文件的方式 - 內聯等等......然後我設置函數返回FPDF的輸出。在我的createPDF.php文件中,我簡單地調用傳遞$ id和'​​I'作爲變量的函數,以便在瀏覽器中內聯顯示正確的PDF。

在我sendEmail功能,我只是傳遞的$ id和「S」並將其設置爲一個變量$內容,這是我進入SwiftMailer作爲附件。

工程很好。

感謝您的幫助!

0

這裏的問題是Swiftmailer獲取文件的內容,它不執行你的PHP文件。所以你的PDF的內容將是createPDF.php中的代碼。

爲什麼你不能先保存文件?您應該能夠安全並在您的電子郵件發送時將其刪除。

<?php 
$id = "xxx"; 
$fileName = "tmp/".sha1(time()+mt_rand(0,99999999)); 
include "createPDF.php"; //saves it to $fileName 
->attach(Swift_Attachment::fromFile($fileName)->setFilename('blaha.pdf')); 
unlink($fileName); 
+0

我不知道我是否正確理解您的代碼。它不適用於我,我沒有看到你在哪裏指定將在createPDF.php?id = xxx URL中的$ id變量。 如果我能救createPDF.php來ID = XXX文件暫時或基於ID可變的東西,動態 - 的ID需要根據我需要發送該PDF改變。然後在發送電子郵件後,刪除此臨時文件。如果我能做到,那就行了。 另請注意,我從我的服務器上的另一個文件發送電子郵件。 sendemail.php位於不同的文件夾中。 createPDF.php位於/文件夾中。 – shootingrubber

+0

你應該編輯你的createPDF.php來不設置$ _GET的id,但只需使用$ id,並確保它保存到$ filename。 –

+0

我做到了,但仍然無法工作。我的代碼中有更多的錯誤。您能否告訴我一個如何格式化createPDF.php頁面和我的其他功能(在另一個頁面中)發送電子郵件的例子?我基本上把它設置在另一個PHP文件中的sendEmail()函數中。 我還是希望能夠有createPDF.php來可以,如果有人點擊,從他們的個人資料中的鏈接以顯示PDF內嵌。 所以我有: createPDF.php 另一個帶有函數sendEmail(){}的PHP文件 – shootingrubber