2012-10-15 109 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”(或您指定的任何内容)。