Mutt başlık önbelleğinden nasıl e-posta istatistikleri oluşturabilirim?


12

Buna göre yapılandırıldığında ( set header_cache=) mutt, posta başlıklarını bir önbellek dosyasına kaydeder. Bu, posta istatistikleri oluşturmak için kullanılabilir. Dosya formatı hakkında bir şeyler bilen var mı? İçerdiği bilgileri çıkarmak için herhangi bir araç var mı? (Bunun yanı sıra strings, grep, awkve benzeri)



Posta sunucusu günlük dosyaları tarafından daha iyi yanıtlanmayacak ne tür istatistikler oluşturmayı umuyorsunuz?
Caleb

1
@Caleb Aklımda çok temel istatistikler var, örneğin yıllık / aylık / gün başına min / avg / maks. Posta, en çok tekrarlanan makbuz / gönderen, vb. Herkesin posta sunucusu günlüklerine erişimi yoktur, bu yüzden bu her zaman bir seçenek değildir.
artistoex

Yanıtlar:


4

Kısa cevap:

önbelleğin kapsamlı olmaması tamamen mümkündür. Postayı silerseniz ve hcache daha sonra bu posta kutusunun başlık önbelleğini yeniden hesaplarsa, istatistikleriniz silinmeden önceki postaları içermez.

Sunucunuz için posta günlüklerine erişiminiz yoksa, procmail gibi bir filtre mekanizmasına erişiminiz var mı? Bunu analiz için alternatif bir günlük oluşturmak için kullanabilirsiniz.

Aksi takdirde, posta kutunuzu alınan posta günlüğünü oluşturabilecek bir programla yoklayabilir misiniz? Çevrimdışı bir harita filtresi veya bazı karma ve önbellekleme ile birleştirilmiş fetchmail / retchmail gibi bir şey.

Daha uzun cevap:

Önbellek dosyası DBM tarzı bir veritabanıdır. Muttınız için kesin inşa seçeneklerine bağlı olarak, QDBM , tokyo kabini , gdbm veya Berkeley DB (BDB); hepsi BDB API'sinin bir varyasyonunu uygular.

Doğru kütüphane uygulamasını kullanmadıkça DB'yi güvenilir bir şekilde okuyabileceğinize inanmıyorum. lddyerel mutt'ım tokyo kabine uygulamasını kullandığını söylüyor:

$ ldd /usr/bin/mutt
…
libtokyocabinet.so.8 => /usr/lib/libtokyocabinet.so.8 (0xb74f2000)
…

Ardından, önbellek dosyasında depolanan BDB'yi sorgulamak için bu kitaplığı kullanarak bir program yazmanız gerekir. Perl, Ruby, Lua, Java ve elbette C için bağlamalar var.

Üstbilgilerin, bir CRC tarafından dizine eklenen DB'de değerler olarak depolandığı görülmektedir. Söyleyebileceğim kadarıyla, CRC saklanan başlıkların o posta kutusundaki tüm postaların başlıkları olduğunu ima eden bir posta kutusu yolundan türetilir . Böylece programınız, belirli bir posta kutusundaki tüm postalar için tüm başlıkları içeren bir arabellekle sonuçlanacaktır. Şu anda posta kutunuzdaki tüm postaların başlıklarını çekmek daha yararlı olacağını sanmıyorum (ve yukarıda "kısa cevap" verilen, daha güvenilir olması garanti edilmez).

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.