Накопилось около четырёхсот тысяч писем за несколько сезонов. Лежат одним mbox на 26 гигабайт, клиент открывает его минуты полторы, поиск по телу думает примерно столько же.
Хочу разложить по-человечески и приделать быстрый поиск. Что берут под такой объём и куда девают вложения?
Раскатай mbox в Maildir, одно письмо один файл. Тогда добавление письма не переписывает гигабайты, и сбой питания портит максимум один файл.
mb2md -s /var/spool/mail/denis -d /srv/mail/arhiv
Поверх Maildir кладётся индекс. Держу notmuch: он обходит каталог, строит базу по заголовкам и телу, дальше ищет за доли секунды на любом объёме. Первый обход четырёхсот тысяч писем на обычном диске идёт минут двадцать, потом только приращение.
первый обход и запрос
Вложения он не вынимает, они остаются внутри писем в base64. Отдельный проход с munpack нужен, только если ты собираешься искать по содержимому вложений.
Ирина, под Windows идут двумя путями. Либо WSL, и там всё то же самое: каталог с почтой лежит на диске Windows, индекс внутри системы.
Либо локальный IMAP. Ставите dovecot, скармливаете ему тот же Maildir, и любой привычный клиент видит архив как обычный почтовый ящик, только поиск считается на стороне сервера и отдаётся мгновенно. Второй путь удобнее, когда архивом пользуется несколько человек.