[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: POP3 сбор почты
Remka
Прием форумчане!

Есть задача:
Собрать все письма с почтового ящика и записать во внутреннюю бд сайта для организации работы тикет системы.

Требуется:
1. Выводить Тему сообщения
2. Текст сообщения
3. Прикрепленный файл

Был взят класс Net_POP3

Судь проблемы:
1. Пишу настройки получаю все необходимое в зашифрованном виде, как мне правильно расшифровать полученное сообщение? если делаю utf8_encode то английский текст отображается нормально а наш родно выводится в виде (=F1=E8=F1=) как быть с этим? может есть какой нибудь умный класс или какие нибудь примеры я так понимаю что кодировка может быть какой угодно в зависимости того от куда письмо пришло.

2. Как вытащить вложения, я так понимаю что класс Net_POP3 это делать умеет но как именно я пока не могу понять.


Прошу вашей помощи вообщем.




Спустя 15 минут, 40 секунд (3.04.2012 - 11:46) Игорь_Vasinsky написал(а):
$text = iconv("koi8-r", "utf-8", $text);

Спустя 31 минута, 37 секунд (3.04.2012 - 12:17) Remka написал(а):
Вообщем помогло от части.

Заголовки письма вывел в нормальном виде, а вот тело сообщения выглядит вот так.


------DTtlWPeB-gVby3CuhdGqoxsiJ:1331033968
Content-Type: application/octet-stream; name="=?UTF-8?B?0KTQvtGC0L7QsNC70YzQsdC+0LwucHNk?="
Content-Disposition: attachment
Content-Transfer-Encoding: base64

OEJQUwABAAAAAAAAAAMAAAMAAAAFAAAIAAMAAAAAAABrLDhCSU0EBAAAAAAADxwBWgADGyVHHAIA
AAIAAQA4QklNBCUAAAAAABAtx3L3GQ+321toqdTv75IGOEJJTQQkAAAAAEVXPD94cGFja2V0IGJl
Z2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxu
czp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjEgNjQu
MTQwOTQ5LCAyMDEwLzEyLzA3LTEwOjU3OjAxICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpy
ZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8
cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6
Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICAgICA8eG1wOkNyZWF0b3JUb29sPkFkb2Jl
IFBob3Rvc2hvcCBDUzUuMSBXaW5kb3dzPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6
Q3JlYXRlRGF0ZT4yMDEyLTAzLTAyVDE1OjE5OjEwKzA0OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAg
ICAgICAgPHhtcDpNZXRhZGF0YURhdGU+MjAxMi0wMy0wNlQxNTozODozNCswNDowMDwveG1wOk1l
dGFkYXRhRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlEYXRlPjIwMTItMDMtMDZUMTU6Mzg6MzQr
MDQ6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgICAgPHJk
ZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6cGhvdG9zaG9wPSJo
dHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIj4KICAgICAgICAgPHBob3Rvc2hvcDpD



Это я так понимаю прикрепленный файл к письму.
Хотелось бы узнать что есть что:
Content-Disposition: attachment - что это?
Content-Transfer-Encoding: base64 - что это?

Как вытащить этот файл на скачивание?

Спустя 19 минут, 47 секунд (3.04.2012 - 12:37) killer8080 написал(а):
Цитата (Remka @ 3.04.2012 - 12:17)
Content-Disposition: attachment - что это?
Content-Transfer-Encoding: base64 - что это?

Это значит что прикреплен файл, и зашифрован в base64, для раскодировки base64_decode()

Цитата (Remka @ 3.04.2012 - 12:17)
Content-Type: application/octet-stream; name="=?UTF-8?B?0KTQvtGC0L7QsNC70YzQsdC+0LwucHNk?="

а здесь имя файла в кодировке utf8, также закодировано в base64
название - все что между =?UTF-8?B? и ?=



Спустя 1 минута, 48 секунд killer8080 написал(а):
твой файл называется Фотоальбом.psd

Спустя 5 минут, 19 секунд (3.04.2012 - 12:43) Remka написал(а):
так это я понял.
то есть чтобы мне выдать файл на скачивание мне надо его из base64 вывести?

или как?
я понимаю что надо переадресовать на другую страницу с заголовком на загрузку но что именно выдавать на этой странице я не понимаю.

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

Спустя 9 минут, 40 секунд (3.04.2012 - 12:52) killer8080 написал(а):
Цитата (Remka @ 3.04.2012 - 12:43)
я знаю что это архив. вот что мне делать чтобы его скачать?

Ну можно было бы сохранить его в виде файла, и дать на него ссылку, или типа такого
$content = base64_decode($content);
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.urlencode($file_name));
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . strlen($content));
echo $content;




Спустя 1 минута, 31 секунда killer8080 написал(а):
Кстати а хранить письмо ты как собираешься? В БД? Там ведь может быть прикреплен большой файл.

Спустя 25 минут, 39 секунд (3.04.2012 - 13:18) Remka написал(а):
killer8080

Спасибо огромное.
Теперь все до конца понятно что от куда берется.

Определил имя файла скачал все удачно.
Чтобы сохранить на сервере я так понимаю его просто надо будет создать в какой либо директории предварительно раскодировав содержимое и присвоив имя и расширение файла.

Еще такой вопрос: Это относится ко всем вложениям?
Или есть какие то особенности? например для jpg или rar я просто проводил тесты на .PSD фотошоповском файле и все прошло на ура

Спустя 32 минуты, 32 секунды (3.04.2012 - 13:50) killer8080 написал(а):
Цитата (Remka @ 3.04.2012 - 13:18)
Еще такой вопрос: Это относится ко всем вложениям?

Да
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.