PHP创建文件并作为附件发送而不实际创建文件

7
我知道如何在PHP上读取服务器上的文件并将其附加到电子邮件,但我想知道是否可以附加一个由我的脚本创建但未在服务器上创建的文件(有点像临时文件)。
因此,将文件在内存中创建并将其附加到电子邮件上。
额外奖励:可能需要创建多个文件,这会对服务器造成太大的负担吗?我不是说GB级别,而是每个文件1000行共5个文件?
1个回答

12

只要您使用的电子邮件库支持,就可以这样做。如果您没有使用任何库,那么应该使用一个!
不,除非您是在1993年购买的服务器,否则5个文件对您的服务器来说并不太多。

希望您的库不需要文件引用 - 您可以尝试以下代码:

$myEmail->attachData('file.name', 'mime/type', $data);

如果确实需要文件路径,那么您可以使用php://memory 文件:

 $f = fopen('php://memory/myfile', 'w');
 fwrite($f, '...');
 fclose($f);

$myEmail->attach('php://memory/myFile');

当我做类似这样的事情时,我该如何获取文件引用? - Phill Pafford
自2009年10月5日以来,AntonioCS一直是被接受的答案。您是错误地发布了这条评论吗? - Phill Pafford
1
你确定使用这个吗?PHP文档对这些包装器的说明并不完善 - 我尝试使用“php://memory/foo”,但在fopen上却出现“无效的URL”错误。 - HorusKol
在PHPMailer中,该方法为AddStringAttachment()。您可以在此处阅读更多信息http://phpdocs.epesi.org/PHPMailer/PHPMailer.html#methodAddStringAttachment - Ivo Pereira

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接