php create file and send as attachment without actually creating the file

孤街浪徒 提交于 2019-12-05 00:06:19

问题


I know how to read a file on the server and attach it to an email in PHP, but I wanted to know if I could attach a file that is created by my script but not created on the server (kinda like a temp file).

So create file in memory and attach it to email.

Bonus: might need to create multiple files as well, would this be too much for the server to handle? I'm not talking GB's but like 5 files with 1000 lines each?


回答1:


Yes you can do that, as long as whatever email library you're using supports it. If you're not using one, you should be!
No, 5 files won't be too much for your server unless you bought it in 1993.

Hopefully your lib won't need a file reference - you can do something like:

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

If it does need a file path then you could use a php://memory file:

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

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


来源:https://stackoverflow.com/questions/1522066/php-create-file-and-send-as-attachment-without-actually-creating-the-file

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!