Сервер: Перенос писем между почтовыми серверами с помощью imapsync

imapsync — это инструмент для синхронизации почтовых ящиков по протоколу IMAP. Он позволяет переносить письма между почтовыми серверами, что удобно при смене почтового провайдера.

# Установка на Debian/Ubuntu
sudo apt install imapsync

# Установка на CentOS/AlmaLinux/Rocky Linux
sudo dnf install imapsync

# Если imapsync отсутствует в репозиториях, можно установить его вручную
cd /usr/local/src
git clone https://github.com/imapsync/imapsync.git
cd imapsync
sudo yum install perl perl-App-cpanminus perl-IO-Tee perl-Mail-IMAPClient perl-Authen-NTLM -y
sudo cpanm --installdeps .

Основные параметры imapsync

--host1 – старый почтовый сервер (исходный IMAP-сервер)
--user1 – имя пользователя исходного почтового ящика
--password1 – пароль исходного почтового ящика
--host2 – новый почтовый сервер (целевой IMAP-сервер)
--user2 – имя пользователя целевого почтового ящика
--password2 – пароль целевого почтового ящика
--ssl1 / --ssl2 – включение SSL для IMAP-соединения
--delete2 – удаляет письма с целевого сервера, если их нет на исходном (не рекомендуется без тестирования)
--dry – тестовый запуск без реального переноса
--exclude "Drafts|Trash|Junk" – исключение определённых папок

Пример переноса писем

# --automap – автоматически сопоставляет стандартные папки (Inbox, Sent, Trash и т. д.)
# --syncinternaldates – сохраняет даты писем
# --skipsize – игнорирует различия в размерах писем
imapsync \
  --host1 imap.oldserver.com --user1 olduser@example.com --password1 'OldPassword' \
  --host2 imap.newserver.com --user2 newuser@example.com --password2 'NewPassword' \
  --ssl1 --ssl2 --automap --syncinternaldates --skipsize

Перенос почты для нескольких ящиков

# Если нужно перенести почту для нескольких пользователей, можно создать CSV-файл users.csv
olduser1@example.com;OldPassword1;newuser1@example.com;NewPassword1
olduser2@example.com;OldPassword2;newuser2@example.com;NewPassword2

# Затем запустить скрипт:
while IFS=';' read -r user1 pass1 user2 pass2; do
  imapsync \
    --host1 imap.oldserver.com --user1 "$user1" --password1 "$pass1" \
    --host2 imap.newserver.com --user2 "$user2" --password2 "$pass2" \
    --ssl1 --ssl2 --automap --syncinternaldates --skipsize;
done < users.csv

Проверка переноса

После завершения переноса рекомендуется зайти в новый почтовый ящик через веб-интерфейс или почтовый клиент и убедиться, что письма перенесены корректно.

# Полезные параметры для диагностики
--dry – тестовый режим
--debugimap – подробный лог IMAP-сессий
--logfile imapsync.log – запись лога в файл
1.7 г. Просмотров: 880
Материал помог? Оценка помогает находить устаревшие и спорные решения.

Комментарии

0

Нашли ошибку или хотите дополнить материал?

Комментариев пока нет.Можно первым дополнить материал или сообщить об ошибке.
Telegram