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

Aleksey Avdeev =?iso-8859-1?q?solo=5Foboroten_=CE=C1_mail15=2Ecom?=
Ср Авг 20 17:07:54 MSD 2003


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

   Подскажите пожалуйста, есть ли оное на русском? (Нашёл 
несколько описаний на сайтах посвящённых QMail, но они крайне 
поверхностны.)

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

   Надежда умирает последней :-))

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

   Для данной задачи, наиболее простой вариант (ИМХО) - скрипт, 
работающий поверх почтового клиента.

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

   Зато, сдесь и задача специальная. А значит и решить её проще: 
заранее отсекается куча вариантов, которые необходимо учитывать 
при решении общей задачи. :-) (В общем виде реализовывать 
репликацию не приходилось. Конкретно под задачу - пару раз 
пришлось. :-))

-- 

С уважением. Алексей.





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