резервные копии электронных писем из IMAP в читаемом виде

Вопрос или проблема

У меня есть безголовая машина с Debian/Raspbian Linux, и я хотел бы делать резервную копию всех моих электронных писем через IMAP, включая все письма и подпапки, раз в день (соединение защищено с помощью SSL/TLS. Это должно выполняться автоматически через cronjob каждый день).

Эта резервная копия должна хранить те же электронные письма, что и на моем основном почтовом сервере, – это означает, что когда я работаю с другого компьютера весь день, она должна быть в состоянии синхронизировать мою работу (поэтому я хочу использовать IMAP).

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

Есть идеи, как это можно сделать?

Используйте getmail. Это хорошая программа на Python, которая может быть использована для загрузки писем с серверов. Веб-сайт немного устарел, но программное обеспечение актуально и хорошо поддерживается. Вот пример конфигурационного файла:

[options]
delete = False

[retriever]
type = SimpleIMAPSSLRetriever
server = my-servername
username = my-username
password = my-password

[destination]
type = Maildir
path = ~/Maildir/

Как видите, можно определить, где будут сохраняться письма. Поддерживаются несколько форматов почтовых ящиков. Вы также можете передать письма локальному IMAP-серверу, например, dovecot. Если вы не хотите использовать SSL, используйте SimpleIMAPRetriever вместо SimpleIMAPSSLRetriever.

OfflineIMAP может быть инструментом, который вы ищете. Он загружает письма в локальную структуру maildirs, что, на мой взгляд, соответствует вашему требованию «читаемости», поскольку вы можете просматривать их напрямую в вашем MUA.

Существует инструмент под названием imapsync, который раньше был бесплатным и с открытым исходным кодом, но больше не является таковым; тем не менее, последняя бесплатная/открытая версия широко доступна, и она может копировать письма с одного IMAP-сервера на другой, включая папки и подпапки.

Таким образом, на вашем резервном сервере вы можете настроить произвольный IMAP-сервер и использовать imapsync, чтобы периодически копировать письма с рабочего сервера на резервный сервер.

Ответ или решение

Как создать резервную копию email с IMAP в читаемом формате на headless Debian/Raspbian

Создание резервной копии ваших emails с IMAP на headless сервере под управлением Debian или Raspbian требует использования специализированных инструментов, которые могут выполнять автоматическую синхронизацию ваших почтовых ящиков с удаленным сервером. В этой статье мы рассмотрим несколько подходящих инструментов и предложим решения, которые удовлетворяют вашим требованиям.

Подходящие инструменты

  1. Getmail

    • Getmail – это Python-программа, предназначенная для загрузки писем с IMAP-серверов. Это довольно простой в использовании инструмент, который активно поддерживается.
    • Пример конфигурационного файла для Getmail:

      [options]
      delete = False
      
      [retriever]
      type = SimpleIMAPSSLRetriever
      server = my-servername
      username = my-username
      password = my-password
      
      [destination]
      type = Maildir
      path = ~/Maildir/
    • В этом примере все ваши письма будут сохраняться в формате Maildir, который легко читаем и позволяет удобно управлять почтой.
  2. OfflineIMAP

    • OfflineIMAP – это другой мощный инструмент, который осуществляет синхронизацию локальных и удаленных почтовых ящиков, создавая локальную структуру Maildirs. Это решение будет полностью соответствовать вашему требованию о возможности чтения и навигации по вашим письмам.
    • Для настройки OfflineIMAP вам нужно создать файл конфигурации, пример которого можно найти в документации проекта.
  3. imapsync

    • imapsync – это инструмент, который может использоваться для синхронизации почты между двумя IMAP-серверами. Хотя он стал платным, бесплатная версия все еще доступна. Этот инструмент позволяет копировать почту с одного IMAP-сервера на другой, включая все папки и подкаталоги.
    • Один из вариантов использования imapsync – настроить локальный IMAP-сервер (например, Dovecot) на резервном сервере и с его помощью выполнять синхронизацию потока почты с основной почтовой системой.

Настройка автоматического выполнения с помощью cron

После установки одного из вышеперечисленных инструментов вам необходимо настроить его автоматический запуск через cron:

  1. Откройте файл crontab для редактирования:

    crontab -e
  2. Добавьте строку для выполнения скрипта резервного копирования ежедневно. Например, для запуска каждую ночь в 2:00:

    0 2 * * * /path/to/your/script.sh
  3. Создайте script.sh с командами для запуска вашего инструмента, например:

    #!/bin/bash
    /usr/local/bin/getmail -r /path/to/getmail/config

Не забудьте сделать ваш скрипт исполняемым:

chmod +x /path/to/your/script.sh

Дополнительные рекомендации

  • Убедитесь, что ваш сервер имеет стабильное интернет-соединение для успешного выполнения синхронизации.
  • Рассмотрите возможность использования SSH для безопасного доступа к вашему серверу, особенно при передаче конфиденциальных данных, таких как имена пользователей и пароли.
  • При взаимодействии с почтовыми серверами всегда следите за конфиденциальностью – используйте переменные окружения или файловое шифрование для хранения паролей и учетных данных.

Заключение

С использованием инструментов, таких как Getmail и OfflineIMAP, а также с настройкой автоматизации через cron, вы сможете добиться надежного решения для резервного копирования вашей электронной почты с IMAP на headless сервере. Это обеспечит безопасность ваших данных и доступность вашей почты в читаемом формате даже в случае сбоя основного почтового сервера.

Оцените материал
Добавить комментарий

Капча загружается...