Яндекс.Метрика

    Ни о чём

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

    imageДоброе время суток друзья. Вчера столкнулся не со всем с обычной задачкой, которая подтолкнула меня к созданию очередной утилиты упрощающую жизнь. Так получилось, что было дано задание сохранить все письма с почтового сервера 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, которые в дальнейшем были импортированы в почтовую программу. Возможно изобрел велосипед, но честно и долго гуглил подобный софт, но безрезультатно.

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