php создает файл и отправляет как вложение, фактически не создавая файл


Я знаю, как прочитать файл на сервере и прикрепить его к электронной почте на PHP, но я хотел знать, могу ли я прикрепить файл, созданный моим сценарием, но не созданный на сервере (вроде как временный файл).

Поэтому создайте файл в памяти и прикрепите его к электронной почте.

Бонус: возможно, потребуется также создать несколько файлов, не будет ли это слишком сложно для сервера? Я говорю не о ГБ, а о 5 файлах по 1000 строк в каждом?

Author: Phill Pafford, 2009-10-05

1 answers

Да, вы можете это сделать, если любая используемая вами библиотека электронной почты поддерживает это. Если вы им не пользуетесь, то должны им быть!
Нет, 5 файлов не будет слишком много для вашего сервера, если вы не купили его в 1993 году.

Надеюсь, вашей библиотеке не понадобится ссылка на файл - вы можете сделать что-то вроде:

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

Если для этого действительно нужен путь к файлу, то вы можете использовать php://памятьфайл:

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

$myEmail->attach('php://memory/myFile');
 10
Author: Greg, 2009-10-05 20:15:32