[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