php - Создать файл из строки и прикрепить к письму

У меня есть приложение, в котором пользователи могут отправлять мне отзывы. Когда они это делают, различные данные из их системы отправляются в файл php на моем сервере. Затем файл php обрабатывает эти данные и отправляет мне электронное письмо с этими данными через mail (). Сейчас все данные просто собраны в электронное письмо в формате HTML.

Я хочу взять некоторые опубликованные данные, преобразовать их в файлы и добавить их как вложения к электронному письму. Я знаю, как добавлять файлы в виде вложений с помощью mail (). Я просто не могу придумать способ сначала создать файлы. Я думал просто использовать fopen () и fwrite (), но что тогда, если два пользователя будут отправлять отзывы одновременно, все файлы будут испорчены, так как у них будет одно и то же имя для каждого пользователя. Я знаю, что в php есть функция временного файла, которая генерирует файл со случайным именем, но тогда как мне ссылаться на этот файл, чтобы добавить его в заголовки почты для mail (). Кроме того, функция временного файла не будет работать, потому что я хочу, чтобы каждый файл имел определенное имя при отправке мне.

Есть идеи, как это сделать?


person edc1591    schedule 29.03.2011    source источник


Ответы (1)


Временные файлы безопасно создаются с помощью tempnam. То, как вы собираетесь их называть при прикреплении к многосоставному письму, не обязательно должно иметь какое-либо отношение к временному имени, которое вы даете фактическому файлу. Если это есть в вашей реализации «почты», покажите этот конкретный код, потому что он не должен быть таким.

На самом деле, чтобы отправить его по почте, вам даже не нужно создавать файл, просто добавьте его как определенную часть в тело письма с правильным кодированием содержимого и границами, и все готово.

person Wrikken    schedule 30.03.2011
comment
Насколько я понимаю о вложениях и mail (), вам нужно указать путь к файлу, но tempnam не возвращает путь. Я здесь совершенно не прав? ха-ха - person edc1591; 30.03.2011
comment
Значит, вы не поняли насчет вложений. Электронное письмо - это просто строка, которую вы отправляете на сервер. Покажите нам код, который вы используете для отправки этого письма (или укажите, какую библиотеку вы для этого используете). - person Wrikken; 30.03.2011
comment
Хорошо, теперь я чувствую себя глупо, ха-ха. Не знаю, почему я подумал, что мне нужен файл для вложения. Я просто добавляю строку в заголовки писем с соответствующими типами mime. Теперь он работает. Спасибо! - person edc1591; 30.03.2011