![]() |
|
Модераторы: korob2001, ginnie |
![]()
|
|
| Grost |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 26.8.2010 Где: Москва Репутация: нет Всего: нет |
Здравствуйте.
Такая вот задача. Вытащить вложения из письма. Читал в perldoc про MIME::Entity, MIME::Parser, MIME::Tools. Но, что то тяжко даётся освоение. В доке написано, что с помощью Entity можно прикрепить этот файл, по логике с его же помощью думаю возможно и вытащить, но нигде этого не нашёл. С Parser не смог разобраться, видел тут тему похожую, но там пример не рабочий. В итоге сделал обработку в ручную, построчно. В письме есть текстовое вложение, его построчно удалось перегнать в другой файлик. А вложения формата xls таким способом вытащить не получилось. Файл при открытии пишет что повреждён и восстановлению не подлежит. Закодировано в base64. Есть у кого-нибудь идеи или опыт, как решить задачку с вытаскиванием xls'ки из письма?) |
|||
|
||||
| arto |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1495 Регистрация: 31.10.2004 Репутация: 38 Всего: 40 |
ни письма, ни кода.
телепаты пока в отпуске. |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
вот кусочки кода из проекта
|
|||
|
||||
| dva300 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
идеи есть, тема интересная. нужное подчеркнуть
1. Unix 1.1. парсим письма online на основе файла aliace - robot : path/your_prg.pl | 1.2. парсим хранилище пользовательских сообщений offline , например по cron 2. Windows 2.1. парсим пользвательские файлы типа eml, pst... 2.2. online на скрипт (думаю Microsoft тут утиль какую-нибудь уже сделал) что именно вам нужно ? --------------------
Участник движения Культура Вождения |
|||
|
||||
| NuINu |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 131 Регистрация: 19.7.2008 Репутация: 5 Всего: 6 |
на что обратил внимание, автор упоминает требование прочитать xls, в коде читает xml
|
|||
|
||||
| Grost |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 26.8.2010 Где: Москва Репутация: нет Всего: нет |
Я пишу под винду, но сервер стоит на никсовой осе, так что потом надо будет перенести. Думаю больших разночтений быть не должно. Письма сохраняются, т.е. самому мне их качать не надо, только открыть и вытащить аттач.
собственно кусок который декодит:
На перле не очень давно пишу, да и это просто проба модуля, поэтому код корявенький)) Прикладываю часть письма. Это сообщение отредактировал(а) Grost - 28.8.2010, 11:53 Присоединённый файл ( Кол-во скачиваний: 9 )
mail.txt 22,30 Kb |
|||
|
||||
| dva300 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
вы откуда взяли этот base64 документ ? дайте полностью письмо
код у вас не правильный потому и не выводит. нужно примерно так уд тогда
binmode для таких файлов в windows обязательно.
вообще ерунда. но файл все равно кривой получается (но читается - циферки какие-то есть) возможножно вы не правильно base64 сформировали. --------------------
Участник движения Культура Вождения |
||||
|
|||||
| Grost |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 26.8.2010 Где: Москва Репутация: нет Всего: нет |
По поводу расширения файла это да, просто тут рабочий вариант для текстового файла. Попробую вечерком этот вариант.
Просто у меня была заморочка с текстовым файлом, когда он его по строкам читает там не совсем правильно полцучается из за символа перехода на новую строку. Мне кажется что если строка обрывается он её не совсем правильно обрабатывает. А то что списочная и скалярная переменная, это большой роли думаю не сыграет. Только если выделяемый объем памяти, но на тесте он мне не критичен. Файл у меня с работы, там инфа по счетам клиентов, как то в целях безопасности не охото всё это сюда выкладывать( |
|||
|
||||
| shamber |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1422 Регистрация: 5.9.2006 Где: Россия Репутация: 17 Всего: 18 |
NuINu, xml заменить на xls не так долго.
|
|||
|
||||
| dva300 |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
прогоните процедуру на других данных. я взаял тупо в лоб и вырезал из письма кисок вложения в base64 касательно вложения - процедура работала правильно. про конец строки см binmode
см описание decode_base64 Это сообщение отредактировал(а) dva300 - 28.8.2010, 15:31 --------------------
Участник движения Культура Вождения |
||||
|
|||||
| Grost |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 26.8.2010 Где: Москва Репутация: нет Всего: нет |
||||
|
||||
| dva300 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
5-ть балов так и надо - что бы не расслаблялись --------------------
Участник движения Культура Вождения |
|||
|
||||
| Grost |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 26.8.2010 Где: Москва Репутация: нет Всего: нет |
dav300, огромное спасибо! Всё расшифровалось так как надо. Т.е. вся загвоздка у меня была в функции binmode? Если я буду переносить это на *никс, что там может измениться?
|
|||
|
||||
| dva300 |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 220 Регистрация: 17.2.2010 Где: Москва Репутация: -1 Всего: 1 |
большое ПЖ.
нет, на Unix binmode не нужно. --------------------
Участник движения Культура Вождения |
|||
|
||||
| Grost |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 65 Регистрация: 26.8.2010 Где: Москва Репутация: нет Всего: нет |
Вот такой код получился:
В винде эта штука работает, при переносе в *никс пишет так:
Это сообщение отредактировал(а) Grost - 3.9.2010, 14:36 |
||||
|
|||||
![]()
|
| Правила форума "Perl" | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, korob2001, sharq. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Perl: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |