Причин, по которым может понадобиться «перетянуть» все письма из одного почтового ящика в другой, может быть множество, например:
- Смена платформы для корпоративного почтового сервера.
- Смена провайдера, предоставляющего почтовый сервис.
- Увольнение сотрудника и перенос его писем другому ответственному.
Безусловно, можно вручную переслать необходимые письма, можно скопировать письма локально при помощи почтового клиента, а затем скопировать их в новый ящик. Но что делать, если планируется переезд десятков или сотен почтовых ящиков? В таком случае нам поможет утилита IMAPCopy.
Эта небольшая утилита командной строки позволяет копировать сообщения для нескольких почтовых аккаунтов с одного IMAP-сервера на другой. К сожалению, утилита умеет работать только с протоколом IMAP: работа с IMAP over SSL/TLS ей недоступна. Для решения этой задачи воспользуемся утилитой Stunnel.
Теперь, на примере переезда с Яндекс.Почты на Gmail, рассмотрим, как это работает. Загружаем IMAPCopy тут и распаковываем. Для пользователей Linux утилиты IMAPCopy и Stunnel добавлены в репозитории многих популярных дистрибутивов. Качаем тут и устанавливаем Stunnel. В процессе установки будет сгенерирован самоподписанный сертификат – вводим данные для его генерации. На финальной стадии установки устанавливаем чек-бокс для запуска Stunnel по завершении инсталляции. Stunnel запущен – его значок отображается в области системных уведомлений (Tray).
Щелкаем правой кнопкой мыши по его значку и выбираем «Edit Configuration». Как мы видим, в конфигурации, для примера, уже прописаны настройки туннелей для серверов POP3, IMAP и SMTP для Gmail:
; ***************************************** Example TLS client mode services [gmail-pop3] client = yes accept = 127.0.0.1:110 connect = pop.gmail.com:995 verifyChain = yes CAfile = ca-certs.pem checkHost = pop.gmail.com OCSPaia = yes [gmail-imap] client = yes accept = 127.0.0.1:143 connect = imap.gmail.com:993 verifyChain = yes CAfile = ca-certs.pem checkHost = imap.gmail.com OCSPaia = yes [gmail-smtp] client = yes accept = 127.0.0.1:25 connect = smtp.gmail.com:465 verifyChain = yes CAfile = ca-certs.pem checkHost = smtp.gmail.com OCSPaia = yes
Удаляем настройки для POP3 и SMTP за ненадобностью и по аналогии добавляем настройку для IMAP-сервера Яндекса. Получаем конфиг:
[gmail-imap] client = yes accept = 127.0.0.1:143 connect = imap.gmail.com:993 verifyChain = yes CAfile = ca-certs.pem checkHost = imap.gmail.com OCSPaia = yes [ya-imap] client = yes accept = 127.0.0.1:1143 connect = imap.yandex.ru:993 verifyChain = yes CAfile = ca-certs.pem checkHost = imap.yandex.ru OCSPaia = yes
Сохраняем, закрываем, правой кнопкой мыши по значку: «Reload Configuration». Все – пол дела сделали: теперь у нас есть SSL/TLS туннели к IMAP-серверам Яндекса и Гугла. Не верите? Проверьте:
D:>telnet localhost 143
D:>telnet localhost 1143
Теперь настроим конфигурацию утилиты IMAPCopy – файл ImapCopy.cfg. Открыв файл, мы увидим, что все пункты настроек хорошо прокомментированы и снабжены примерами. У утилиты есть широкие возможности отладки, возможность работать с отдельными папками, флагами и даже конвертировать время. Нам это не нужно – у нас глобальный переезд, поэтому нас интересуют пункты: Sourceserver, Destinationserver и List of users and passwords.
Исходный сервер у нас Яндекс.Почта:
############## # Sourceserver ############## SourceServer localhost SourcePort 1143
Сервер назначения – Gmail:
################### # Destinationserver ################### DestServer localhost DestPort 143
Указываем учетные данные исходных аккаунтов и аккаунтов назначений:
############################# # List of users and passwords ############################# # SourceUser SourcePassword DestinationUser DestinationPassword Copy "petrov" "parol_petrov_ya" "petrov" "parol_petrov_G" Copy "ivanov" "parol_ivanov_ya" "ivanov" "parol_ivanov_G" Copy "vasechkina" "parol_vasechkina_ya" "uliyanova" "parol_uliyanova_G"
Сохраняем, закрываем, тестируем подключение:
d:>imapcopy -t
Подключение происходит без проблем, значит можно запускать утилиту на копирование. Так же включим запись журнала операций в файл (imapcopy.log), чтобы можно было спокойно разобраться в случае возникновения ошибок:
d:>imapcopy -l
Все прошло успешно – утилита отработала и выдала итог: обработано такое-то количество пользователей, скопировано количество писем, ошибок нет.