Коротка відповідь:
цілком можливо, що кеш не буде вичерпним. Якщо ви видалите пошту та hcache пізніше перерахуєте кеш заголовка для цієї поштової скриньки, ваші статистичні дані не включатимуть пошту до видалення.
Якщо у вас немає доступу до журналів пошти для вашого сервера, чи маєте ви доступ до механізму фільтрування, наприклад procmail? Ви можете використовувати це для створення альтернативного журналу для аналізу.
В іншому випадку ви можете опитувати свою поштову скриньку програмою, яка може генерувати журнал отриманої пошти? Щось схоже на фільтр офлайнмапи або фетхмейл / retchmail у поєднанні з деякими хешуваннями та кешуваннями.
Більш довга відповідь:
Файл кеша - це база даних у стилі DBM. В залежності від конкретних варіантів збірки для вашого собачка, це може бути один з QDBM , Токійський кабінет , GDBM або Berkeley DB (BDB); які всі реалізують варіацію API BDB.
Я вважаю, що навряд чи можна надійно прочитати БД, якщо не використовувати правильну реалізацію бібліотеки. ldd
говорить мені, що мій місцевий мульт використовує реалізацію кабінету tokyo:
$ ldd /usr/bin/mutt
…
libtokyocabinet.so.8 => /usr/lib/libtokyocabinet.so.8 (0xb74f2000)
…
Потім вам потрібно буде написати програму, використовуючи цю бібліотеку, для запиту BDB, що зберігається в файлі кешу. Існують прив’язки для Perl, Ruby, Lua, Java і звичайно C.
Здається, що заголовки зберігаються як значення в БД, індексовані CRC. З того, що я можу сказати, CRC походить від шляху до поштової скриньки, що означає, що збережені заголовки є заголовками для всієї пошти в цій поштовій скриньці . Таким чином, ваша програма, по суті, збирається буфером, що містить усі заголовки для всієї пошти в певній поштовій скриньці. Я не думаю, що це буде набагато корисніше, ніж витягувати заголовки з усієї пошти, яка зараз знаходиться у вашій поштовій скриньці (і з огляду на "коротку відповідь" вище, не гарантовано, що вона буде більш надійною).