मॉनिटर पोस्टफ़िक्स आउटगोइंग मेल डिलीवरी


11

मैं मेलिंग सूची को चलाने के लिए पोस्टफिक्स के साथ जीएनयू मेलमैन का उपयोग कर रहा हूं, और आउटगोइंग मेल की डिलीवरी की निगरानी करना चाहता हूं, अर्थात्: सूची से भेजे गए प्रत्येक मेल के लिए, जांचें कि क्या 250 (ओके) संदेश का जवाब दिया गया था, और यदि नहीं , मुझे वापस रिपोर्ट करें।

अभी के लिए, मैं एक त्वरित और गंदा कर रहा हूँ:

# cat /var/log/syslog | grep "smtp.*to=.*" | grep -v 250

क्या smtpd के आउटपुट की निगरानी करने का एक साफ तरीका है?


1
निश्चित रूप से यह एक बेकार उपयोगcat होना चाहिए ? बहुत कम से कम आप कर सकते हैंgrep "smtp.*to=.*" /var/log/syslog | grep -v 250
एक CVn

व्यक्तिगत रूप से मुझे लगता है कि सबसे अधिक संदर्भों में थोड़ा पांडित्यपूर्ण धर्मयुद्ध करते हैं और ओपी के अधिक पठनीय, मॉड्यूलर प्रारूप को पसंद करते हैं
jchook

जवाबों:


8

भेजे गए मेल को साफ तरीके से मॉनिटर करने का कोई तरीका नहीं है। आप केवल पोस्टफिक्स के Maillog से विवरण प्राप्त कर सकते हैं।

यहाँ एक उदाहरण है:

log='logfile of postfix'
grep "status=sent" $log | \
egrep -ve 'postfix/(cleanup|pickup|master|qmgr|smtpd|local|pipe)'

और dkimआदि के लिए लॉग से भी बचें । यदि आपको मेल की गिनती की आवश्यकता है, तो wc -lअंत में पाइप करें ।


3

कैसा रहेगा:

multitail -eX "smtp.*to=<(.*)>.*sent.*250" './bin/received' -f /var/log/maillog

./bin/received एक शेल स्क्रिप्ट है जो एक पैरामीटर के रूप में गंतव्य ईमेल पते को प्राप्त करता है और इसके साथ कुछ करता है।


1

इसे इस्तेमाल करे

cat /var/log/maillog |grep -v "relay=local" |grep "relay=" |grep "status=sent"

आपको यहाँ बहुत उपयोगी जानकारी मिलेगी http://en.redinskala.com/postfix-maillog-interpretation/


आप स्मार्ट उद्धरण का उपयोग क्यों कर रहे हैं? वे काम नहीं करेंगे।
डेविडपोस्टिल

0

मैं देख रहा हूँ कि मेरे सर्वर के माध्यम से ईमेल कौन भेजता है:

tail -f /var/log/mail.log | grep 'sasl'

यह दिखाता है कि प्रमाणित उपयोगकर्ता कौन है जो भेज रहा है।

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