न्यूनतम एमटीए जो मेल को स्थानीय रूप से (क्रोन के लिए) वितरित करता है?


17

मेरे लैपटॉप पर, मैंने एक क्रोन स्थापित किया है जो साप्ताहिक नौकरी करता है। यदि रिपोर्ट करने के लिए कुछ है, तो मैं इसके लिए एक ई-मेल प्राप्त करना चाहूंगा। अभी मैं केएमईएल को एमयूए के रूप में उपयोग कर रहा हूं जो मेलडिर निर्देशिका से मेल पढ़ने में सक्षम है~/.local/share/local-mail । इस प्रकार, मैं चाहता हूं कि स्थानीय मेल उस फ़ोल्डर में वितरित किया जाए (एक मेल्डिर संरचना के साथ)।

मैं उम्मीद कर रहा था कि एक मृत सरल कार्यक्रम पहले से ही मौजूद है जिसमें एक sendmailइंटरफ़ेस है (जैसे कि echo "$REPORT" | mail -s "$SUBJECT" "$ME"इसके साथ काम कर सकते हैं)। एक्ज़िम या फ़ॉरवर्डिंग मेल को मेरे रिमोट मेलस्वर में इंस्टॉल करना ओवरकिल माना जाता है।

प्रश्न सर्वर से सभी मेल को अग्रेषित करने का सबसे सरल तरीका? दूरस्थ अग्रेषण को लक्षित करने के लिए लगता है जो मेरी आवश्यकताओं के अनुरूप नहीं है (मुझे स्थानीय वितरण की आवश्यकता है)। इस पुराने जेंटू धागे का अंत पर्ल में एक पुरानी पटकथा को गढ़ने में हुआ। निश्चित रूप से एक सुविचारित, मृत-सरल कार्यक्रम मौजूद होना चाहिए?

कोई सिफारिशें? मैं आर्क लिनक्स का उपयोग कर रहा हूं।


यह मानकर कि एमटीए आर्क जो भी डिफ़ॉल्ट रूप से उपयोग करता है वह स्थापित और चल रहा है, आप बस उपयोग कर सकते हैं userX@localhost.localdomainऔर सामान को समाप्त होना चाहिए /var/spool/mail/userX; आप इसे स्वयं देख सकते हैं या अपने MUA से जांच के लिए एक नया खाता बना सकते हैं।
गोल्डीलॉक्स

2
कुछ googling ने मुझे github.com/corecode/dma उर्फ ड्रैगनफ्लाई मेल एजेंट में लाया ।
ट्रिपल

@goldilocks आर्क एक न्यूनतम वितरण होने के नाते डिफ़ॉल्ट रूप से स्थापित MTA नहीं है। /usr/bin/sendmailमौजूद नहीं है और क्रोन आउटपुट में समाप्त होता है /dev/null
लेकेनस्टेयन

@tripleee मैंने सामना किया लेकिन एसएमटीपी और टीएलएस का उल्लेख होते ही मैंने इसे अनदेखा कर दिया। उल्लेख करने के लिए धन्यवाद, मैं फिर से देखूंगा। बंदरगाह पर नहीं सुनता 25 मुझे अच्छा लगता है।
लेकेनस्टेयन

@tripleee दुर्भाग्य से, dma Maildir का समर्थन नहीं करता है, केवल स्पूल डायर में /var/spool/mail
लेकेनस्टेयन

जवाबों:


7

चूंकि मुझे एक मौजूदा, छोटा कार्यक्रम नहीं मिला, इसलिए मैंने अपना एक लिखने का फैसला किया। मूल रूप से, मैं साथ आया:

#!/bin/bash
# Simple sendmail
# filename per spec at http://cr.yp.to/proto/maildir.html
rand=$((RANDOM % 1000))
msgname=$(date +%s).P$$R$rand.$(hostname | tr '/:' '\057\072')

# Safety measure: do not overwrite existing mail
set -o noclobber

cat > ~peter/".local/share/local-mail/inbox/new/$msgname"

यह काम किया ... सिवाय इसके कि स्क्रिप्ट निष्पादित करने वाला उपयोगकर्ता "पीटर" नहीं है। इस विचार का उत्तराधिकारी एक "छोटा" सी प्रोग्राम है, जो फेम्टेल है । इसकी README से:

मेल्टिर समर्थन के साथ न्यूनतम एमडीए

femtomail स्थानीय मेल के लिए एक न्यूनतम मेल डिलीवरी एजेंट (MDA) है। मेल को मानक इनपुट से स्वीकार किया जाता है और एक उपयोगकर्ता के Maildir बॉक्स में रखा जाता है। यह सॉफ्टवेयर एकल-उपयोगकर्ता मशीन पर उपयोग के लिए है।

रिमोट डिलीवरी, डीमॉनेटाइजिंग, प्रेषक सत्यापन, आदि को लागू नहीं किया गया है और इसकी जटिलता के कारण इसे लागू नहीं किया जाएगा। फीमेलटॉमेल इसलिए नहीं लिखी गई क्योंकि मेल सॉफ्टवेयर मौजूद नहीं था, लेकिन क्योंकि मौजूदा सॉफ्टवेयर स्थानीय उपयोगकर्ता को क्रोन मेल पहुंचाने के सरल कार्य के लिए बहुत बड़े थे ।

स्त्रीलिंग का वर्कफ़्लो:

  1. प्रक्रिया उपयोगकर्ता और समूह को बदलें।
  2. मेल निर्देशिका में एक अद्वितीय फ़ाइल नाम के साथ एक नई फ़ाइल बनाएँ ।
  3. Receivedफ़ाइल पर एक हेडर लिखें ।
  4. मानक इनपुट से फ़ाइल में डेटा पास करें।
  5. बाहर जाएं।

स्रोत कोड और स्थापना निर्देश https://git.lekensteyn.nl/femtomail/ पर उपलब्ध हैं ।


1
यह बहुत अच्छा होगा यदि फेम्टोमेल: यूजर @ लोकलहोस्ट (या स्थानीय होस्ट का होस्टनाम) को पढ़े और उस यूजर को सेट करें, ईमेल को होम डायर या कहीं मानक में लिखें। बिट्स बिट्स की आवश्यकता होगी।
गौतव

@gauteh यह पहले से ही अधिक उन्नत है और शायद एकल-उपयोगकर्ता मशीन पर उपयोग के लिए नहीं है। अधिक विशेषताओं का अर्थ है बड़ा कोड और बग्स की अधिक संभावना। आपका उपयोग मामला क्या है?
लेकेनस्टेन

निश्चित रूप से, उपयोगकर्ताओं के बीच एक पूर्ण स्थानीय मेल डिलीवरी एजेंट के रूप में उपयोग करने के लिए - बिना हार्डकोड के सामान।
गौतेह

@gauteh मुझे लगता है कि आप उस उपयोग के मामले के लिए Dovecot जैसे अधिक पूर्ण MDA के साथ बेहतर हैं। यद्यपि आप अपने उपयोग के मामले के लिए फेम्टोमेल को पैच करने के लिए स्वतंत्र हैं, और शायद दूसरों को रुचि रखने वाले मामले में पीआर भी भेजें।
लेकेनस्टेन 11
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.