जवाबों:
वास्तविक संदेश अनुलग्नक के रूप में भी दिखता है, इसलिए आप इसे अनुलग्नक सूची से बचा सकते हैं। अनुक्रमणिका या संदेश से ही, vअनुलग्नकों को खोलने और sसहेजने के लिए हिट करें
s
आदेश एक मेलबॉक्स है, जो आप के लिए Maildir स्वरूप में है को बचाता है। दुर्भाग्य से, कोई सेव-टू-फाइल कमांड नहीं है, शायद इसलिए कि ऐतिहासिक एमबॉक्स फॉर्मेट में, एक मेल जिसमें एक एकल मेल होता है, केवल उस मेल वाली फ़ाइल होती है।
इसके लिए mutt
कमांड पाइप-संदेश (डिफ़ॉल्ट शॉर्टकट |
) का उपयोग किया जा सकता है। यह एक कमांड लाइन खोलता है और आप लिखते हैं cat > DESIRED-FILE-PATH
।
"पाइप-डिकोड" विकल्प नियंत्रित करता है कि हेडर और माइम भागों का क्या होता है जब आप इस तरह से एक संदेश सहेजते हैं।
शायद इस कार्यशीलता के लिए एक मैक्रो लिख सकता है।
set pipe_decode=yes
मेरे म्यूटेंट को जोड़कर काई वॉन फ़िंटेल के बारे में क्या लिख रहा था।
=
ऐसा करने के साथ अन-प्रोसेस्ड लाइन ब्रेक दिखाई देता है ।
यदि आप touch
एक फाइल करते हैं और फिर एक संदेश को बचाने या कॉपी करने की कोशिश करते हैं, तो म्यूट इसे एक बॉक्स के रूप में उपयोग करेगा।
इसके अलावा आप कॉपी को बचाने के बजाय उपयोग करना चाह सकते हैं। मठ यह मानता है कि एक मेल केवल एक प्रति में मौजूद होना चाहिए और किसी संदेश को दूसरे मेलबॉक्स में सहेजना इसे पहले वाले से हटा देगा, जबकि नकल एक उचित प्रतिलिपि करेगा।
काई वॉन फिंटल का जवाब पूरी तरह से काम करता है, लेकिन मुझे लगा कि मैं इस प्रक्रिया को कारगर बनाने के लिए एक मैक्रो साझा करूंगा।
सबसे पहले 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
स्क्रिप्ट में उपयोग करना आसान नहीं होगा ?
formail
, इसलिए मैंने एक रीड किया था। हालाँकि, मुझे पूरी तरह यकीन नहीं है कि आप मेरी स्क्रिप्ट के किस हिस्से का जिक्र कर रहे हैं? formail
विषय और तिथि निकालने के लिए उपयोग कर रहे हैं? यदि हां, तो शायद एक अच्छा विचार है। मैं आपसे उत्तर लिखने का आग्रह करूंगा; मैं निश्चित रूप से इसे बढ़ाऊंगा।
मैंने सभी सुझाए गए जवाबों की कोशिश की है, लेकिन कच्चे, मल्टीपार्ट (पाठ / सादे + पाठ / एचटीएमएल) ई-मेल को फ़ाइल में सहेजने के लिए नहीं मिल सका है, जिसमें हेडर और सब कुछ शामिल है। मुझे यह सिखाने के लिए ई-मेल के साथ अपना स्पैम-फ़िल्टर खिलाने के लिए इसकी आवश्यकता थी, कि एक विशिष्ट मेल स्पैम है या नहीं ...
मैं जिस समाधान के साथ आया था e
वह खुले संदेश पर (यानी "संदेश संपादित करें") दबा रहा है , जो आपकी पसंद के संपादक में कच्चे संदेश को खोलता है । यहां रॉ का मतलब है, कि आपको मैसेज ठीक उसी तरह से मिलता है, जैसे कि म्यूट में आता है, इसलिए आपके पास सभी हेडर और सभी बाइट्स होते हैं, जिसमें मैसेज शामिल होता है।
मारने के बाद e
, मैं सिर्फ बफर (मैं करने के लिए संपादक सेट लिखने vim ) के साथ एक फाइल करने के लिए :w <path_to_file>/<file_name>
और बस इतना ही।
पुनश्च: मैंने इसे टिप्पणी के रूप में जोड़ा होगा लेकिन ऐसा करने के लिए आपको एक निश्चित स्तर की प्रतिष्ठा की आवश्यकता है। इसके अलावा, मुझे पता है कि सवाल बहुत पुराना है लेकिन जैसा कि अभी भी कई लोगों द्वारा नियोमुट का उपयोग किया जाता है, मैंने सोचा कि यह किसी की मदद कर सकता है।
अद्यतन: मैंने उस pipe-decode
विकल्प की अनदेखी की, जिसके बारे में काई बात कर रहा था। उस विकल्प को सही ढंग से सेट करने के साथ, इसके माध्यम से |
भी काम किया होगा । अभी भी मेरा समाधान काम कर रहा है ;-)