Любое файловое почтовое клиентское приложение? (С целью помещения почтового ящика под VCS.)

Как и Subversion, который имеет два внутренних типа: на основе BDB и на основе файлов. Большинство почтовых приложений, которые я видел, используют серверную часть базы данных, но конечным пользователем манипулировать базой данных не так удобно.

В настоящее время я использую Thunderbird, который также использует базу данных в качестве back-end. Я запускаю Thunderbird на четырех машинах, поэтому есть 4 отдельные базы данных. И у меня много почтовых аккаунтов, может быть, 20 и более. (Нет, пожалуйста, не говорите мне пересылку почты.) Так что, если серверная часть основана на файлах, я могу просто настроить Git-репозиторий и синхронизировать их все. Но Thunderbird имеет свой внутренний формат базы данных, поэтому управлять этими отдельными базами данных очень неудобно.

2 ответа

Решение

Введен формат Maildir для хранения почты, который точно выполняет то, что вы описываете: одно сообщение хранится в одном отдельном файле.

И есть драйверы Maildir (бэкэнды) для некоторых почтовых клиентов, а также некоторые агенты доставки почты и некоторые службы доступа к почте (IMAP или POP или веб-интерфейс).

Конечно, если ваша почта хранится в Maildirs, проще всего поместить ее под обычный контроль версий.

Таким образом, вы можете искать бэкэнды Maildir для почтовых клиентов.

Но, на самом деле, синхронизация вашего почтового хранилища может быть немного сложнее, чем синхронизация каталогов файлов - из-за различных флагов (новых, прочитанных), меток, перемещений или копий сообщений между папками и - самой сложной части - внутренние идентификаторы сообщений, используемые серверами доступа к почте (IMAP) или почтовыми клиентами . О чем эти идентификаторы? Что ж, важно сохранить идентификаторы между несколькими копиями вашего почтового хранилища, чтобы, например, процедура кэширования вашего почтового клиента работала правильно.

Я изучил эту проблему и записал некоторые заметки здесь: исследование о том, КАК сделать резервную копию учетной записи IMAP . (Но тогда мне не нужно было выполнять эту задачу, поэтому заметки и мое практическое решение не были завершены.)

Общая идея, к которой я пришел, заключается в том, что использование почтового клиента и простое помещение Maildirs под контроль версий не дает вам всего, что вам может понадобиться при управлении версиями вашего почтового хранилища. Лучше объединить его с реальными серверами IMAP (удаленными или локальными) для единообразного доступа к почте, а также со специальными инструментами, которые работают поверх IMAP для синхронизации различных копий / хранилищ / веток вашего почтового хранилища (специальные инструменты позаботьтесь о флагах, метках, идентификаторах правильно). Обычный контроль версий подходит для проверки ревизий и возврата к предыдущей ревизии, но для объединения ветвей (= синхронизация) я бы рассмотрел более сложную процедуру:

Вы хотите объединить филиалы A а также B ,

  • Итак, вы готовите новое состояние (ревизия) C который будет содержать объединенное состояние путем копирования одного из них, например, копирования A к новому C ,
  • Затем вы используете инструмент (например, "imapsync"; выберите тот, который соответствует вашим потребностям; я перечислил несколько таких инструментов в своих заметках ), чтобы перенести новые изменения с B на C: imapsync B в C ,

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

  • Сейчас коммит C (в результате слияния A а также B ; перед этим вы могли бы использовать соответствующую команду в вашей VCS для записи информации, которая является результатом слияния B в A например, что-то вроде git merge B -s ours --no-commit " в C ).

Пожалуйста, изучите детали самостоятельно, я имею в виду только общую идею, и сейчас я не использую такую ​​процедуру на практике.

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


AFAIR Я выбрал offlineimap для моей задачи резервного копирования учетной записи IMAP в Git. Кстати, вот ответ с примером конфигурации offlineimap ,

Лучший ответ - использовать сервер, предназначенный для обмена электронной почтой между клиентами, - сервер IMAP. Практически любой почтовый клиент сможет получить доступ к электронной почте на этом сервере. Вы можете настроить свой собственный, в Ubuntu, или использовать Gmail, или, если вы используете провайдера для своей электронной почты, этот провайдер, вероятно, разрешит IMAP доступ к вашей электронной почте там.

Другие вопросы по тегам