[Comm] Синхронизация внешниго IMAP с внутренним.

Прокопьев Евгений =?iso-8859-1?q?john_=CE=C1_rmts=2Edonpac=2Eru?=
Ср Авг 20 14:02:54 MSD 2003


Aleksey Avdeev пишет:

>> В maildir (этот формат используется в CourierIMAP) прочитанные и 
>> непрочитанные сообщения просто лежат в разных папках - вот и вся 
>> разница между ними. В mbox - не знаю. И я плохо себе представляю, как эту 
> 
> 
>   Тогда непонимаю: CourierIMAP поддерживает вложенные папки (поправьте, 
> если неправ - я ещё неполностью разобрался с данным сервером). 

вроде поддерживает, но я не пользовался ими

> Как тогда 
> реализовано отображение папок IMAP на maildir? Или каждая папка IMAP в 
> формате maildir содержит несколько служебных вложенных папках? 

да

> Как тогда 
> реализовано хранение флагов? И далее ещё куча подобных вопросов... :-)

Не знаю, читайте описание формата maildir.

>> информацию можно использовать на практике - уж слишком сложным и 
>> ненадежным будет механизм синхронизации. Придется писать двух демонов 
>> на работе и дома, которые будут обмениваться данными о прочитанных 
>> письмах.
> 
> 
>   На работе всё помоему просто: таже Mozilla будет брать почту 
> непосредственно с внешнего IMAP. А дома уже сложнее: повидимому надо 
> будет брать письма с внешнего IMAP с сохранением _всех_ флагов и 
> взаимодействуя непосредственно Courier-ом синхронизировать флаги (или 
> передавать всё письмо)...
> 
>   Вобщем пока у меня нет ясности как лучше решить данную задачу. Есть 
> стойкие подозрения, что Fetchmail сдесь неприменим вообще, а  нужно 
> использовать какойнибудь консольный клиент (хорошо работающий с IMAP), 
> который способен запускаться по крону, открывать 2 ящика (внешний и 
> внутренний) по IMAP и выполнять некий скрипт синхронизации.
> 
>   Всё пока в тумане. Надеюсь, данная дискуссия поможет его развеять. ;-)

Зря надеетесь :)

Никто здесь (эх, хорошо бы, если б я ошибался) таких задач перед собой 
не ставил. Это классическая задача репликации двух БД - для реляционных 
БД такие технологии давно проработаны, описаны, и есть куча 
инструментов. А для специализированных БД, коими являются Maildir (да и 
mbox тоже, только mbox по сравнению с maildir как dbf по сравнению 
btrieve), никаких готовых инструментов нет. На макроуровне от 
реляционных БД архитектурных отличий нет:

Репликатор	<------>	Репликатор
     |				   |
Домашний			Внешний
IMAP (БД)			IMAP (БД)

Разница в форматах данных и алгоритмах отслеживания изменений, пересылки 
изменений и разрешения конфликтов. И в уровне, на котором должен 
работать репликатор - уровень протокола IMAP или файловый уровень.

Короче, если Вы знаете, что такое репликация в реляционных БД, Вы можете 
себе представить, насколько сложно будет реализовать восход солнца 
вручную. А если не знаете, то читайте про теорию репликации.

-- 
С уважением, Прокопьев Евгений




Подробная информация о списке рассылки community