Папки IMAP: насколько большой размер?

Я перешел от использования Thunderbird к offlineimap и mutt . Мои почтовые ящики имеют более 50 тыс. Сообщений. После настройки некоторых параметров mutt очень реагирует на это множество сообщений. notmuch чрезвычайно быстро для поиска. Но offlineimap может занять несколько минут, чтобы синхронизировать все папки.

После небольшого исследования выяснилось, что IMAP не предназначен для использования с очень большими папками. Если это так, то какой рабочий процесс emal я должен использовать, чтобы уменьшить количество папок?

uwimapd , вы ссылаетесь на uwimapd , реализацию для сервера IMAP, когда вы говорите «IMAP». В этом случае вам нужно убедиться, что ни один из ваших mboxes не станет больше 2 ГБ, то есть все электронные письма в одной папке, не считая подпапок.

Если вы не имеете в виду uwimapd , я считаю, что ваша проблема uwimapd с производительностью вашего компьютера и интернет-восходящей линии связи, а не с IMAP. Следовательно:

Имейте только электронные письма не старше 3 месяцев и те, которые принадлежат к текущим проектам. Поместите остальные в папку архива . Создайте ту же структуру папок в архиве, что и в INBOX . Это позволяет легко находить материал в архиве , если вы не можете найти его в INBOX .

IMAP, протокол четкого текста, который использует ваш почтовый пользовательский агент для извлечения и управления электронными письмами, хранящимися на удаленном почтовом сервере, становится проблематичным, когда он должен обрабатывать тысячи электронных писем одновременно. Ключевым аспектом является « необходимость обработки ». Общая сумма и размер электронных писем не являются проблемой для IMAP, как таковой. Проблема возникает, если она должна реально выполнять работу над большим количеством писем.

Это происходит, например, если тысячи электронных писем имеют свой контент и / или статус (отмеченные, не- / прочитанные, приоритетные, временные метки, …), измененные между двумя синхронизациями. Поскольку вы используете offlineimap это может произойти в зависимости от вашего offlineimap использования. Однако в этом случае единственное, что поможет вам, – это более частые синхронные действия.

Не все IMAP-серверы бывают быстрыми, но, как было отмечено ранее, возможно иметь эффективную реализацию и настройку IMAP. У меня была разумная удача с dovecot . Тем не менее, offlineimap является особенно медленной программой. Он отлично работал в небольших тестах, поэтому я переключился на него и изменил все настройки электронной почты, чтобы зависеть от него. Но чем больше почты я получил, тем медленнее это получилось, пока, в конце концов, я не потерял рассудок каждый раз, когда я проверял электронную почту.

Если вы хотите полностью автономный поиск и, как notmuch, вы можете рассмотреть muchsync , который вроде как эквивалент offlineimap, но специализируется на notmuch, чтобы воспользоваться индексом notmuch. Функция muchsync намного быстрее, чем offlineimap, как только вы выполнили начальную синхронизацию, поскольку она позволяет избежать всех сетевых поездок в сети, которые есть в автономном режиме, и использует преимущества структур данных индекса notmuch для эффективности. Я переключился на него с offlineimap и был очень доволен.

Еще одной альтернативой рассмотрению является isync . У меня нет личного опыта работы с isync, но некоторым людям это нравится. Ранее использовав и ненавидел offlineimap, я бы серьезно исследовал isync, если бы не переключился на muchsync.

«После небольшого исследования выяснилось, что IMAP не предназначен для использования с очень большими папками».

Мое мнение (и опыт) прямо противоположное. Imap имеет очень сложные серверные функции поиска, индексирования – единственная проблема заключается в том, что большинство mailclient использует это практически как протокол удаленного управления файлами.

Например, с IMAP можно искать сообщения в папке с данным SMTP-заголовком. Или вы можете обрабатывать файлы вложений почты отдельно от своего тела. Но у этого есть цена: протокол намного сложнее, чем любой другой, который я когда-либо видел.

Реальная мощность imap будет видна только, если

  • фактический IMAP-сервер способен индексировать ваши письма

  • и ваш mailclient способен обрабатывать папки imap разумно (т. е. не использовать imapd в качестве удаленной файловой системы, но большую часть из них выполняет с удаленными запросами на стороне сервера).

Мой единственный хороший опыт – пара thunderbird / dovecot с ним. На стороне клиента, kmail также относительно хорошо, а также cyrus на стороне сервера. Другие системы не очень хорошо.

В thunderbird вы можете выполнять запросы «поиск по серверу» и просматривать их результаты как виртуальную папку. И поиск по серверу позволяет imapd быстро выполнять поиск по ключевым словам на основе внутренних данных индекса.

Я не знаю, как offlineimap, но я знаю mutt. Чистые, консольные консольные приложения очень хороши и в основном очень эффективны с единственным исключением, и именно это вы нашли: они стремятся избежать индексированных вещей и стремиться к вещам линейно (хотя и очень быстро).

Я только что добавил imapsync в Alpine Linux . Его можно запустить в контейнере LXC на любом Linux. Альпийский контейнер размером около 5 5mb .

mailserver ночью я переместил почтовый ящик 7 7GB на новый mailserver без каких-либо проблем. Это заняло около 3 часов с 2,2 сообщениями в секунду, и в процессе использовалось 260-280mb ОЗУ. Для синхронизации 5 почтовых ящиков с --useuid кеширования --useuid требуется 60 секунд.