ईमेल को फ़ाइल के रूप में सहेजा जा रहा है?


28

जब मैं Sम्यूट में दबाता हूं , तो यह मेल को मेल फ़ोल्डर फॉर्मेट ( cur/ tmp/ new/) में सेव कर देता है , लेकिन मैं चाहता हूं कि सिंगल फाइल सेव हो जाए, जैसे अटैचमेंट्स सेव होते हैं।

क्या यह विन्यास योग्य है?

जवाबों:


23

वास्तविक संदेश अनुलग्नक के रूप में भी दिखता है, इसलिए आप इसे अनुलग्नक सूची से बचा सकते हैं। अनुक्रमणिका या संदेश से ही, vअनुलग्नकों को खोलने और sसहेजने के लिए हिट करें


बस एक नोट: यदि आपके ईमेल संदेश में अटैचमेंट हैं, तो अटैचमेंट सूची से सिर्फ पहली प्रविष्टि को सहेजने से संदेश बच जाएगा - लेकिन बिना संलग्नक के अंदर।
सादाऊ

3
एक और ध्यान दें: यह प्रेषक, प्राप्तकर्ता और विषय सहित किसी भी हेडर को नहीं बचाता है।
गौरतलब

31

sआदेश एक मेलबॉक्स है, जो आप के लिए Maildir स्वरूप में है को बचाता है। दुर्भाग्य से, कोई सेव-टू-फाइल कमांड नहीं है, शायद इसलिए कि ऐतिहासिक एमबॉक्स फॉर्मेट में, एक मेल जिसमें एक एकल मेल होता है, केवल उस मेल वाली फ़ाइल होती है।

इसके लिए muttकमांड पाइप-संदेश (डिफ़ॉल्ट शॉर्टकट |) का उपयोग किया जा सकता है। यह एक कमांड लाइन खोलता है और आप लिखते हैं cat > DESIRED-FILE-PATH

"पाइप-डिकोड" विकल्प नियंत्रित करता है कि हेडर और माइम भागों का क्या होता है जब आप इस तरह से एक संदेश सहेजते हैं।

शायद इस कार्यशीलता के लिए एक मैक्रो लिख सकता है।


कूल, यह हेडर को भी बचा सकता है, लेकिन अभी के लिए, मैं माइकल के रास्ते का उपयोग करूँगा, धन्यवाद!
डेज़ी

1
यह अच्छी तरह से काम करता है और फ़ाइल को 50+ ईमेल (पैटर्न-मिलान टैगिंग का उपयोग करके) सहेजने का एक कुशल तरीका प्रदान करता है। मुझे यह जानने के लिए थोड़ा खोदना पड़ा कि set pipe_decode=yesमेरे म्यूटेंट को जोड़कर काई वॉन फ़िंटेल के बारे में क्या लिख ​​रहा था।
स्क्रीनबैक

इसके अलावा, यह निर्यात की गई ईमेल फ़ाइल में संलग्नक को भी बचाता है।
सादाऊ

यह ठीक है, लेकिन मुझे =ऐसा करने के साथ अन-प्रोसेस्ड लाइन ब्रेक दिखाई देता है ।
जैक वासी

बहुत बढ़िया। यह मेरे लिए बहुत अच्छा काम किया। मैं एक अप्रचलित Maildir से कुछ 20+ ईमेल निकालना चाहता था। चीयर्स!
प्रागीथ

10

यदि आप touchएक फाइल करते हैं और फिर एक संदेश को बचाने या कॉपी करने की कोशिश करते हैं, तो म्यूट इसे एक बॉक्स के रूप में उपयोग करेगा।

इसके अलावा आप कॉपी को बचाने के बजाय उपयोग करना चाह सकते हैं। मठ यह मानता है कि एक मेल केवल एक प्रति में मौजूद होना चाहिए और किसी संदेश को दूसरे मेलबॉक्स में सहेजना इसे पहले वाले से हटा देगा, जबकि नकल एक उचित प्रतिलिपि करेगा।


1
मुझे पूर्ण हेडर के साथ संदेश को फ़िल्टर टेस्ट स्क्रिप्ट में पेस्ट करने की आवश्यकता थी, और यह पूरी तरह से काम करता था।
सोरेन ब्योर्नस्टैड

2

काई वॉन फिंटल का जवाब पूरी तरह से काम करता है, लेकिन मुझे लगा कि मैं इस प्रक्रिया को कारगर बनाने के लिए एक मैक्रो साझा करूंगा।

सबसे पहले muttrc:

macro index,pager S "| ~/.local/bin/file_email /tmp<enter>"

यह निम्न स्क्रिप्ट के लिए पूरा ईमेल (हेडर और अटैचमेंट सहित) को पाइप करता है। पर एक निष्पादन योग्य फ़ाइल बनाएँ ~/.local/bin/file_email

#!/usr/bin/env bash
# Save piped email to "$1/YYMMDD SUBJECT.eml"

# Don't overwrite existing file
set -o noclobber

message=$(cat)

mail_date=$(<<<"$message" grep -oPm 1 '^Date: ?\K.*')
formatted_date=$(date -d"$mail_date" +%y%m%d)
# Get the first line of the subject, and change / to ∕ so it's not a subdirectory
subject=$(<<<"$message" grep -oPm 1 '^Subject: ?\K.*' | sed 's,/,∕,g')

if [[ $formatted_date == '' ]]; then
  echo Error: no date parsed
  exit 1
elif [[ $subject == '' ]]; then
  echo Warning: no subject found
fi

echo "${message}" > "$1/$formatted_date $subject.eml" && echo Email saved to "$1/$formatted_date $subject.eml"

यह स्क्रिप्ट फ़ाइल को पहले तर्क पर सहेजती है (यानी muttrcऊपर दिए गए उदाहरण में, ईमेल बचाएगा /tmp)। फ़ाइल नाम का प्रारूप है YYMMDD SUBJECT.eml। यह उपनिर्देशिकाएँ बनाने से रोकने के /लिए भी अभिसरण करता है


formailस्क्रिप्ट में उपयोग करना आसान नहीं होगा ?
०१ंद्री

@ 0andriy मैं परिचित नहीं हूँ formail, इसलिए मैंने एक रीड किया था। हालाँकि, मुझे पूरी तरह यकीन नहीं है कि आप मेरी स्क्रिप्ट के किस हिस्से का जिक्र कर रहे हैं? formailविषय और तिथि निकालने के लिए उपयोग कर रहे हैं? यदि हां, तो शायद एक अच्छा विचार है। मैं आपसे उत्तर लिखने का आग्रह करूंगा; मैं निश्चित रूप से इसे बढ़ाऊंगा।
स्पार्कहॉक

0

मैंने सभी सुझाए गए जवाबों की कोशिश की है, लेकिन कच्चे, मल्टीपार्ट (पाठ / सादे + पाठ / एचटीएमएल) ई-मेल को फ़ाइल में सहेजने के लिए नहीं मिल सका है, जिसमें हेडर और सब कुछ शामिल है। मुझे यह सिखाने के लिए ई-मेल के साथ अपना स्पैम-फ़िल्टर खिलाने के लिए इसकी आवश्यकता थी, कि एक विशिष्ट मेल स्पैम है या नहीं ...

मैं जिस समाधान के साथ आया था eवह खुले संदेश पर (यानी "संदेश संपादित करें") दबा रहा है , जो आपकी पसंद के संपादक में कच्चे संदेश को खोलता है । यहां रॉ का मतलब है, कि आपको मैसेज ठीक उसी तरह से मिलता है, जैसे कि म्यूट में आता है, इसलिए आपके पास सभी हेडर और सभी बाइट्स होते हैं, जिसमें मैसेज शामिल होता है।

मारने के बाद e, मैं सिर्फ बफर (मैं करने के लिए संपादक सेट लिखने vim ) के साथ एक फाइल करने के लिए :w <path_to_file>/<file_name>और बस इतना ही।

पुनश्च: मैंने इसे टिप्पणी के रूप में जोड़ा होगा लेकिन ऐसा करने के लिए आपको एक निश्चित स्तर की प्रतिष्ठा की आवश्यकता है। इसके अलावा, मुझे पता है कि सवाल बहुत पुराना है लेकिन जैसा कि अभी भी कई लोगों द्वारा नियोमुट का उपयोग किया जाता है, मैंने सोचा कि यह किसी की मदद कर सकता है।

अद्यतन: मैंने उस pipe-decodeविकल्प की अनदेखी की, जिसके बारे में काई बात कर रहा था। उस विकल्प को सही ढंग से सेट करने के साथ, इसके माध्यम से |भी काम किया होगा । अभी भी मेरा समाधान काम कर रहा है ;-)

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