2010-04-30 11 views
8

तो मुझे आज सुबह एक क्लाइंट के बारे में कॉल करने की ज़रूरत है कि यह देखने के लिए कि वे किस माध्यम से हमारे माध्यमिक मेल सर्वर में बैठे रहने के लिए इंतजार कर रहे हैं। मुख्य सर्वर के लिए उनका लिंक (अभी भी) दो दिनों के लिए नीचे गया था और उन्हें अपना ईमेल देखने की आवश्यकता थी।क्या पोस्टफिक्स मेल कतार फ़ाइलों को देखने के लिए पोस्टकैट से बेहतर उपकरण है?

तो मैं अलग फ़ाइलों में अपने पते के लिए प्रत्येक ई-मेल डंप करने के लिए postcat के साथ संयोजन में mailq उपयोग करने के लिए एक त्वरित पर्ल स्क्रिप्ट लिखा, यह tar'd और इसे बंद भेजा है। भयानक कोड, मुझे पता है, लेकिन यह जरूरी था।

मेरा समाधान कम से कम एक कच्चा दृश्य देता है, लेकिन मैंने सोचा कि यह अच्छा होगा अगर मेरे पास कोई समाधान था जहां मैं अपना ईमेल अनुलग्नक प्रदान कर सकता था और शायद कुछ "कचरा" हेडर टेक्स्ट भी हटा सकता था। लगता है कि अधिकांश महत्वपूर्ण ईमेल में पीडीएफ या समान संलग्न होता है।

मैं चारों ओर देख रहा हूं लेकिन कतार फाइलों को देखने का एकमात्र तरीका मैं देख सकता हूं कि पोस्टकैट कमांड है, और मैं वास्तव में अपना खुद का पार्सर नहीं लिखना चाहता - इसलिए मैं सोच रहा था कि आप में से कोई भी पहले से ही कर चुका है तो, या उपयोग करने के लिए एक बेहतर कमांड के बारे में पता है?

#!/usr/bin/perl 

$qCmd="mailq | grep -B 2 \"[email protected]\" | cut -d \" \" -f 1"; 

@data = split(/\n/, `$qCmd`); 
$i = 0; 

foreach $line (@data) 
{ 
    $i++; 

    $remainder = $i % 2; 
    if ($remainder == 0) 
    { 
      next; 
    } 

    if ($line =~ /\(/ || $line =~ /\n/ || $line eq "") 
    { 
     next; 
    } 
    print "Processing: " . $line . "\n"; 
    `postcat -q $line > $line.email.txt`; 
    $subject=`cat $line.email.txt | grep "Subject:"`; 
    #print "SUB" . $subject; 
    #`cat $line.email.txt > \"$subject.$line.email.txt\"`; 
} 

किसी भी सलाह की सराहना की:

यहाँ मेरे वर्तमान समाधान के लिए कोड है।

+0

क्या आपको परवाह है कि समाधान पर्ल है या नहीं? मुझे लगता है कि आप नौकरी पाने के लिए किसी भी तरह से काम करना चाहते हैं। :) –

+0

मुझे कोई फर्क नहीं पड़ता, मैंने वास्तव में इसे शुरुआत में बैश में लिखा था (इसलिए बैकटीक्स का भारी उपयोग) लेकिन मॉड्यूलस ऑपरेटर का उपयोग करने के साथ समस्याएं मिलीं जिन्हें मैं सौदा नहीं करना चाहता था (मैं भीड़ में था)। अगर मुझे भाषा पहले से ही नहीं पता है, तो मैं इसे कम से कम सीखूंगा ताकि मैं कुछ हैक कर सकूं। मेरा एकमात्र आपत्ति हो सकती है अगर यह शायद असेंबलर में हो? : पी – Geekman

उत्तर

1

आपको यहां उपयोग के Postfix::Parse::Mailq मॉड्यूल के साथ-साथ pfcat स्क्रिप्ट मिल सकती है।

+0

मैं ईथर के सुझावों की सराहना करता हूं, और मैं देख सकता हूं कि यह मेरी वर्तमान स्क्रिप्ट को कैसे व्यवस्थित करेगा - हालांकि वे दोनों पोस्टकैट का उपयोग करने के अन्य तरीके हैं। पोस्टकैट कच्चे दृश्य के लिए बहुत अच्छा है, लेकिन मुझे उम्मीद थी कि मुझे बिना किसी परेशानी के ग्राहकों के लिए एक अच्छा प्रदर्शन देने के लिए कुछ मिल सकता है। बोनस के रूप में एन्कोडेड अनुलग्नक लेने और उन्हें वास्तविक फ़ाइलों के रूप में डंप करने के लिए कुछ शानदार होगा। मुझे ऐसा कुछ नहीं मिला है, मुझे पता है कि मैं इसे कोड कर सकता हूं, लेकिन मैं कोशिश नहीं कर रहा हूं क्योंकि यह कोड का एक उचित हिस्सा होगा (पढ़ें: समय) मैं कल्पना करता हूं। – Geekman