Resposta curta:
é perfeitamente possível que o cache não seja abrangente. Se você excluir o correio e o hcache posteriormente recalcular o cache do cabeçalho dessa caixa de correio, suas estatísticas não incluirão o correio anterior à exclusão.
Se você não tem acesso aos logs de correio do seu servidor, você tem acesso a um mecanismo de filtro, por exemplo, procmail? Você pode usar isso para gerar um log alternativo para análise.
Caso contrário, você pode consultar sua caixa de correio com um programa que pode gerar um log de mensagens recebidas? Algo como um filtro offlineimap, ou fetchmail / retchmail combinado com algum hash e cache.
Resposta mais longa:
O arquivo de cache é um banco de dados no estilo DBM. Dependendo das opções exatas de compilação para o seu mutt, ele pode ser um dos QDBM , tokyo cabinet , gdbm ou Berkeley DB (BDB); todos implementam uma variação da API do BDB.
Acredito que é improvável que você possa ler o banco de dados de maneira confiável, a menos que use a implementação correta da biblioteca. ldd
me diz que meu mutt local usa a implementação do gabinete de tokyo:
$ ldd /usr/bin/mutt
…
libtokyocabinet.so.8 => /usr/lib/libtokyocabinet.so.8 (0xb74f2000)
…
Você precisaria escrever um programa, usando essa biblioteca, para consultar o BDB armazenado no arquivo de cache. Existem ligações para Perl, Ruby, Lua, Java e, claro, C.
Parece que os cabeçalhos são armazenados como valores no banco de dados, indexados por um CRC. Pelo que sei, o CRC é derivado do caminho para uma caixa de correio, o que implica que os cabeçalhos armazenados são os cabeçalhos de todos os emails nessa caixa de correio . Portanto, seu programa acabará essencialmente com um buffer contendo todos os cabeçalhos de todos os emails em uma determinada caixa de correio. Não acho que seja muito mais útil do que extrair os cabeçalhos de todos os emails atualmente em sua caixa de correio (e, dada a "resposta curta" acima, não é garantido que seja mais confiável).