2012-10-15 45 views
0

我有一個腳本,目前從WordPress的DB需要一些數據,然後循環返回的行,並使用fputcsv()。文件句柄是設置有:PHP輸出CSV電子郵件

$fh = fopen('php://output', 'w'); 

腳本鏈接到的網頁的鏈接,當你點擊它下載CSV鏈接(通過內容 - disposition頭)。

是否可以寫PHP://輸出該CSV文件,然後使用PHP的mail()函數中的附件發送嗎?

我有一個郵件功能我已經寫了將設置MIME類型爲multipart /混合,我只是不知道如何創建要通過電子郵件發送實際的附件。

+0

細心的你不要做這一個[XY問題(http://mywiki.wooledge.org/XyProblem)。您提出的解決方案並不總是達到目標的最佳方式。 – ghoti

+0

爲了讓您的生活更輕鬆,請查看[Pear Mail](http://pear.php.net/package/Mail/)或[PHPMailer](http://phpmailer.worxware.com/) – budwiser

回答

1

使用tmpfile()代替。將您的CSV數據寫入該臨時文件,然後將其附加到您的電子郵件中。

另外,不要寫自己的MIME處理/生成功能。使用像PHPMailer或Swiftmailer這樣的庫爲你做。更容易,更可靠。部分附件處理代碼允許您指定用戶所看到的文件名,因此即使它可能是「/ tmp/abc123def」,它也會在實際的電子郵件中顯示爲「data.csv」(或您指定的任何內容)。