|
|
|
| Здравствуйте.
Задача: получить файлы с mailbox + текст письма + текст темы.
С текстом и темой ещё можно разобраться, но вот как получить файл?
Во-первых, содержимой может разбиваться на ".. Next Part ..." , это сразу ставит под вопрос самостоятельный разбор тела письма - могут быть ошибки.
Во-вторых, содержимое файла выдаётся строкой - а нужны двоичные данные...
Если кто-то уже делал это, помогите, пожалуйста. | |
|
|
|
|
|
|
|
для: OZ_
(28.07.2005 в 11:44)
| | Проверил: отправил файл 175Kb, прочитал выдалась неразорванная на Partы строка... А если будет больше? Может он вообще не разрезается? А зачем тогда NextPart? С какими флагами и какой функцией нужно перекодировать строку в binary? Какой параметр (3-й) передать imap_body(), чтобы она возвращала все символы корректно (вдруг \n\r будет )? Может она сама может binary вернуть? | |
|
|
|
|
|
|
|
для: OZ_
(28.07.2005 в 11:44)
| | Ну, раз нет специалистов в этом деле, буду рассказывать, что получается :)
Про NextPart: все части сообщения разделены одинаковым сепаратором, определённым в заголовке Content-Type. Пример:
Content-Type: multipart/alternative;
boundary="----=_NextPart_001_0051_01C592F4.D60F4E50"
| .
С помощью imap_fetchstructure() или без её помощи можно получить тело письма и найти там эти разделители.
P.S.: Извините, если это оффтопик, просто вдруг кому пригодится. | |
|
|
|
|
|
|
|
для: OZ_
(28.07.2005 в 11:44)
| | С помощью сложных манипуляций strpos и substr (регулярные не подойдут) удалось выделить содержимое аттача. Но не удаётся перекодировть эти строки в двоичный файл. Блин.
Какие есть функции перекодировки? | |
|
|
|
|
|
|
|
для: OZ_
(28.07.2005 в 16:39)
| | YES!!!
Я сделал это :)
base64_decode - функция раскодировки.
Теперь осталось протестировать, что будет, если несколько файлов в аттаче будет.
надеюсь, это хоть кому-нибудь пригодится, а то я тут сам с собой разговариваю... :) | |
|
|
|