मैं म्यूट हेडर कैश से ईमेल आँकड़े कैसे उत्पन्न कर सकता हूँ?


12

तदनुसार कॉन्फ़िगर किया गया ( set header_cache=) म्यूट मेल हेडर को कैश फ़ाइल में सहेजता है। यह मेल आँकड़े उत्पन्न करने के लिए इस्तेमाल किया जा सकता है। किसी को फ़ाइल प्रारूप के बारे में कुछ पता है? क्या कोई उपकरण निहित जानकारी निकालने के लिए उपलब्ध हैं? (इसके अलावा strings, grep, awkऔर की तरह)


यहाँ कोड है: dev.mutt.org/hg/mutt/file/tip/hcache.c
mattdm

आप किस तरह के आँकड़ों को उत्पन्न करने की उम्मीद कर रहे हैं जो मेल सर्वर लॉग फ़ाइलों द्वारा बेहतर उत्तर नहीं देंगे।
कालेब

1
@ कालेब मेरे पास बहुत बुनियादी आँकड़े हैं, उदाहरण के लिए प्रति वर्ष / माह / दिन / मिनट / सबसे अधिक मेल, अधिकांश आवर्तक रसीद / प्रेषक, आदि। हर कोई मेल सर्वर लॉग तक नहीं पहुंचता है, इसलिए यह हमेशा एक विकल्प नहीं होता है।
कलाकारोय

जवाबों:


4

संक्षिप्त जवाब:

यह पूरी तरह से संभव है कि कैश व्यापक नहीं होगा। यदि आप मेल को हटाते हैं और बाद में उस मेलबॉक्स के लिए हेडर कैश पुनः प्राप्त करते हैं, तो आपके आँकड़े डिलीट होने से पहले मेल शामिल नहीं करेंगे।

यदि आपके पास अपने सर्वर के लिए मेल लॉग का उपयोग नहीं है, तो क्या आपके पास एक फ़िल्टर तंत्र तक पहुंच है, जैसे कि घोषित? आप विश्लेषण के लिए एक वैकल्पिक लॉग उत्पन्न करने के लिए इसका उपयोग कर सकते हैं।

अन्यथा, क्या आप अपने मेलबॉक्स को एक ऐसे प्रोग्राम के साथ सर्वेक्षण कर सकते हैं जो प्राप्त मेल के लॉग को उत्पन्न कर सकता है? कुछ ऑफ़लाइन की तरह, या कुछ हैशिंग और कैशिंग के साथ संयुक्त रूप से प्राप्त करने के लिए एक ऑफ़लाइन फ़िल्टर।

दीर्घ उत्तर:

कैश फ़ाइल एक डीबीएम-शैली डेटाबेस है। आपके म्यूट के सटीक निर्माण विकल्पों के आधार पर, यह QDBM , टोक्यो कैबिनेट , gdbm या बर्कले DB (BDB) में से एक हो सकता है ; जो सभी बीडीबी के एपीआई की विविधता को लागू करते हैं।

मेरा मानना ​​है कि यह संभावना नहीं है कि आप मज़बूती से डीबी को पढ़ सकते हैं जब तक कि आप सही पुस्तकालय कार्यान्वयन का उपयोग नहीं करते हैं। lddमुझे बताता है कि मेरा स्थानीय म्यूट टेंको कैबिनेट कार्यान्वयन का उपयोग करता है:

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

फिर आपको कैश फ़ाइल में संग्रहीत BDB को क्वेरी करने के लिए, उस लाइब्रेरी का उपयोग करके एक प्रोग्राम लिखना होगा। पर्ल, रूबी, लुआ, जावा और निश्चित रूप से सी के लिए बाइंडिंग हैं।

ऐसा प्रतीत होता है कि हेडरों को एक सीआरसी द्वारा अनुक्रमित डीबी में मूल्यों के रूप में संग्रहीत किया जाता है। मैं जो बता सकता हूं, सीआरसी एक मेलबॉक्स के लिए पथ से लिया गया है, जिसका अर्थ है कि संग्रहीत हेडर उस मेलबॉक्स में सभी मेल के हेडर हैं । तो आपका प्रोग्राम अनिवार्य रूप से किसी मेल में सभी मेल के लिए सभी हेडर युक्त बफर के साथ समाप्त होने वाला है। मुझे नहीं लगता कि यह आपके मेलबॉक्‍स में वर्तमान में सभी मेल से हेडर खींचने की तुलना में बहुत अधिक उपयोगी होगा (और ऊपर दिया गया "संक्षिप्त उत्तर", अधिक विश्वसनीय होने की गारंटी नहीं है)।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.