Как сохранить все отправленные письма с сервера MAIL.RU на локальный диск

Доброе время суток друзья. Вчера столкнулся не со всем с обычной задачкой, которая подтолкнула меня к созданию очередной утилиты упрощающую жизнь. Так получилось, что было дано задание сохранить все письма с почтового сервера mail.ru из папки – Отправленные, у нескольких десятков пользователей, на локальный диск с дальнейшим импортом в почтовик. Ничего сложного в принципе в этом не было, но увы почтовый сервер mail.ru обделил нас замечательным imap’ом. А это значило, что придется как-то выкручиваться.

Идея сохранять каждое письмо вручную, сразу отпало, в папке около 2000 исходящих писем и при чем это только у одного пользователя. Пробежался по другим ящикам, картина вырисовывалась грандиозная. Начал поиск в интернете на наличие программы, которая может совладать с данной задачей, но кроме как парсеров, граберов и т.п. андеграунд софта, видимо ничего не было изобретено.

Помощи было ждать не от куда, да и я привык решать подобные проблемы сам, сел за написание утилиты, которая спасет нас всех. Решил писать на Autoit. Нарисовал краткий план:

1. Авторизация на почтовом сервере mail.ru

2. Использовать мобильную веб-версию, чтобы не так сильно все было перегружено

3. Получения количества страниц в папке Исходящие

4. Разбор каждой страницы с генерацией прямых ссылок на скачивание

5. Сохранение на жесткий диск в папку с названием вида export-outbox в формате eml

По мере написания утилиты, была добавлена возможность сохранить все остальные папки, Входящие, Черновики, Спам, Удаленные. Вот что получилось:

Сперва отредактируем скрипт по себя, вводим логин, пароль, домен ($login, $paswd, $domain ). В переменную $target вписываем код папки, которую мы бы хотели сохранить на локальный диск, в нашем случае вышла такая таблица:

0 = Входящие

500000 = Отправленные

500001 = Черновики

500002 = Удаленные

950 = Спам

Мне пригодился второй вариант со значением 500000. соответствующий папки – Отправленные.

Наглядный код скрипта, вставить к сожалению не получается, хабрапарсер съедает регулярные выражения и топик ужасно перекашивает, посмотреть и скачать скрипт можно здесь: Смотреть код

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

Спасибо за внимание. С Уважением, Алексей

Источник: kildekode.ru

Категория: Электронная почта

Похожие статьи: