Задать вопрос
RUVATA
@RUVATA
Разработчик, гик, меломан, разгильдяй

Real-time синхронизация структуры IMAP каталога в нескольких клиентах Thunderbird 17.x

Всем доброго времени суток,
Вчера ко мне обратился коллега с весьма занимательной задачей :)

Попросил он меня подобрать костыли разработать дополнение к Thunderbird решающее его проблему, но у меня разыгрался, прямо таки, батхерт спортивный интерес — неужели сия проблема не вставала никогда перед пользователями Thunderbird, и способов ее решения как бы нет.
Гугол много подобных тем обсуждения, которые по большему счету — безответны. Я правда, честно, мамой клянусь гуглил половину вчерашнего рабочего дня, пробовал играться опциями — все одно.

Суть вопроса собственно в его заголовке, но позволю себе повториться и немного расширить «вводную»:
И так имеем мы несколько ПК, на которых кровь из носу необходимо работать с одним и тем же IMAP-почтовым ящиком (В частности Gmail, но это собственно сути не меняет, пробовали и «свои серваки» и инакомыслящих — не работает)
Так вот используется старый добрый Thunderbird (я его и сам пользую, но у меня более плоский юзкейс — очень годно).

Запущено два клиента одновременно — новая почта валится «на ура», а вот структура каталогов, и флаги прочитано/ не прочитано и т.д. подтягиваются только один раз при запуске клиента и баста, потом сидим совершенно рандомным образом, после активации специальной опции mail.imap.use_status_for_biff которая вроде как должна обеспечить синхронизацию хотя бы при приеме новой почты, то и дело что-то частично синхронизируется.
Опциональную часть Thunderbird я уже перелазал наверное всю, на данный момент форсировать синхронизацию удалось лишь двумя способами:
1) Перезапуск клиента
2) В свойствах каталога, есть опция «Починить папку» которая перестраивает индекс папки *.msf-файл.

Так вот я задумал расковырять клиент и поглядеть как там это «починить папку» делается, или же снифануть вызовы функций при запуске клиента, дабы определить как синхронизация происходит изначально, а потом если есть у данной штуки api использовать ее в дополнении.

Вот. Не очень хочется велосипедостроить.
Есть ли у хабраразума какие соображения на этот счет, может быть я глуп и не разумен что либо упускаю?
  • Вопрос задан
  • 10848 просмотров
Подписаться 5 Оценить Комментировать
Решения вопроса 1
RUVATA
@RUVATA Автор вопроса
Разработчик, гик, меломан, разгильдяй
Спасибо за ответы,
LordMerlin
Я уже частично разобрался в проблеме и она в первую очередь связана не с получением данных (как оказалось — с этим все нормуль)
а с отрисовкой состояния папки в клиенте, т.е. данные синхронизируются, но у ГромоПтицы есть отдельный индекс, который предназначен для их древовидной структуры меню навигации по учетным записям, так вот синхронизация не инициализирует его перестроение, лишь обращение из пользовательского интерфейса, будь то переход от одного элемента к другому, или сворачивание/разворачивание заставляет выстраивать новое состояние и отрисосвывать его. А самый «цимес» ситуации состоит в том, что если пользователь находится «курсором» на каталоге меню навигации, и никуда с него не будет уходить (курсором), или сворачивать разворачивать учетку — то в окне содержимого каталога — будет не актуальная структура, тем не менее с ней можно будет продолжать работать — т.е. устанавливать флаги и т.д. которые пойдут таки на IMAP-сервак командами.
Как побеждать — судя по всему никак технически, юзера проинструктированы «переставлять курсор», сия проблема кроется в самой архитектуре приложения.
PS: обнаружен еще один интересный момент, но не понятно на какой сотороне проблема: если в интерфейсе ГромоПтицы быстро отметить несколько сообщений как прочитанные или наоборот (прямо следом клик-клик) — до сервака дойдет только о первой отметке, или сервак принимает только первую команду (исходя из изменений которые в итоге там с папкой происходят). За скорость тест машин и интернета можно не хвататься их более чем достаточно.
z3apa3a,
mail.imap.use_status_for_biff о которой я говорил — это как раз таки эта самая опция, но прошу Вас заметить что такое обновление приходит лишь с получением новых сообщений, тем временем несколько клиентов могут перемещать/удалять/изменять флаги при отсутствии новых входящих, и их потом уже никак не синхронизируешь.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
LordMerlin
@LordMerlin
Болван
Использую с некоторых пор Opera Mail ввиду монструозности ГромоПтицы. Просто летает. Одновременно работает с одним ящиком на 3-х компах. Метки передаются мгновенно.
Сейчас провел эксперимент с Птицей, в Опере поставил метку непрочитано, нажал в Птице проверить почту, метки прилетели. Сделал то же самое с другим письмом в Птице, в Опере тоже поменялось. Все отлично.
Если не нужны какие то серьезные вещи типа плагинов в ГромоПтице попробуйте ОпераМаил.
Ответ написан
Комментировать
В свойствах всех папок, с которыми идет совместная работа поставьте эту галочку:
image
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы