Risposta breve:
è del tutto possibile che la cache non sia completa. Se in seguito elimini posta e hcache ricalcola la cache di intestazione per quella casella di posta, le tue statistiche non includeranno la posta precedente alla cancellazione.
Se non si ha accesso ai registri di posta per il proprio server, si ha accesso a un meccanismo di filtro, ad esempio procmail? È possibile utilizzarlo per generare un registro alternativo per l'analisi.
Altrimenti, puoi eseguire il polling della tua casella di posta con un programma in grado di generare un registro di posta ricevuta? Qualcosa come un filtro offlineimap o fetchmail / retchmail combinato con alcuni hash e cache.
Risposta più lunga:
Il file di cache è un database in stile DBM. A seconda delle esatte opzioni di build per il tuo mutt, potrebbe essere uno di QDBM , tokyo cabinet , gdbm o Berkeley DB (BDB); che implementano tutti una variante dell'API di BDB.
Ritengo improbabile che tu possa leggere in modo affidabile il DB a meno che tu non usi l'implementazione corretta della libreria. ldd
mi dice che il mio mutt locale usa l'implementazione del tokyo cabinet:
$ ldd /usr/bin/mutt
…
libtokyocabinet.so.8 => /usr/lib/libtokyocabinet.so.8 (0xb74f2000)
…
Dovresti quindi scrivere un programma, usando quella libreria, per interrogare il BDB memorizzato nel file cache. Ci sono attacchi per Perl, Ruby, Lua, Java e ovviamente C.
Sembrerebbe che le intestazioni siano memorizzate come valori nel DB, indicizzate da un CRC. Da quello che posso dire, il CRC deriva dal percorso di una cassetta postale, il che implica che le intestazioni memorizzate sono le intestazioni di tutta la posta in quella cassetta postale . Quindi il tuo programma finirà essenzialmente con un buffer contenente tutte le intestazioni per tutta la posta in una determinata casella di posta. Non penso che sarà molto più utile che estrarre le intestazioni da tutta la posta attualmente nella tua casella di posta (e data la "risposta breve" sopra, non è garantita per essere più affidabile).