Як я можу генерувати статистику електронної пошти з кешу заголовка mutt?


12

При налаштуваннях відповідно ( set header_cache=) mutt зберігає заголовки пошти у файлі кешу. Це можна використовувати для отримання статистики пошти. Хтось знає щось про формат файлу? Чи є інструменти для вилучення інформації, що міститься? (Крім того strings, grep, awkтощо)



Яку статистику ви очікуєте створити, на яку краще не відповідати файли журналів поштового сервера?
Калеб

1
@Caleb Я маю на увазі дуже основні статистичні дані, наприклад, min / avg / max повідомлення на рік / місяць / день, більшість періодичних квитанцій / надсилань тощо. Не всі мають доступ до журналів поштового сервера, тому це не завжди є можливим.
artistoex

Відповіді:


4

Коротка відповідь:

цілком можливо, що кеш не буде вичерпним. Якщо ви видалите пошту та 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 походить від шляху до поштової скриньки, що означає, що збережені заголовки є заголовками для всієї пошти в цій поштовій скриньці . Таким чином, ваша програма, по суті, збирається буфером, що містить усі заголовки для всієї пошти в певній поштовій скриньці. Я не думаю, що це буде набагато корисніше, ніж витягувати заголовки з усієї пошти, яка зараз знаходиться у вашій поштовій скриньці (і з огляду на "коротку відповідь" вище, не гарантовано, що вона буде більш надійною).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.