मैं कमांड लाइन से कैसे लगाव ईमेल कर सकता हूं


26

क्या कमांड लाइन से अटैचमेंट ईमेल करना संभव है?

यदि संभव हो तो, मैं कुछ सरल के रूप में चाहते हैं:

mail -a myfile.txt -t me@example.com -s "Here's my file"

1
डिफ़ॉल्ट ubuntu कमांड लाइन मेल यूजर-एजेंट mail(उर्फ mailx) MIME अज्ञानी है इसलिए 1980ish में किसी भी तरह से अटैचमेंट को संभाल नहीं सकता है। यह एक अच्छा सवाल है, मैं कैनोनिकल कैननिकल म्यू के लिए देख रहा हूँ; और भी आने को है।
msw

जवाबों:


18

उबंटू रिपॉजिटरी में सभी मेल उपयोगकर्ता एजेंटों में से, यह प्रतीत होता है कि म्यूट कमांड-लाइन एमयूए है जो दीर्घकालिक समर्थन के साथ धन्य है।

मैनुअल के अनुसार , आप कुछ ऐसा कर सकते हैं:

mutt -a myfile.txt -s "Here's my file" -- me@example.com

सिवाय इसके कि वह कहीं नहीं जाएगा क्योंकि एक को भी मेल ट्रांसफर एजेंट की जरूरत होती है। लोकप्रिय हैं:

  • मन्नत भेजने वाला
  • पोस्टफ़िक्स
  • exim4
  • qmail
  • nullmailer

और केवल वही है जो कैनोनिकल का समर्थन करता है पोस्टफिक्स (सुधार स्टीव के लिए धन्यवाद) और एक्सिम 4 हैं

कोई यह भी कह सकता है कि xdg-email भी एक उचित उबंटू MUA है, लेकिन यह एक नंगे हड्डियों वाला अगला छोर है जो केवल आपकी ओर से आपके पसंदीदा MUA को निष्पादित करता है ।

यदि आप उस सलाह को पसंद करते हैं जिस पर एमटीए आपके उपयोग के लिए उपयुक्त हो सकता है, तो शायद यहां एक और प्रश्न खोलें।


महान प्रश्न, धन्यवाद। आपने मुझे अपने बॉक्स पर मेल काम करने के लिए प्रेरित किया। मैंने अपने ISP को नेत्रहीन रूप से रिले करने के लिए nullmailer MTA का उपयोग किया, और उदाहरण के लिए muttविज्ञापन के रूप में काम किया। संयोगवश nullmailer का एक नकली Sendmail फ्रंट-एंड है, ताकि ज्यादातर प्रोग्राम जो Sendmail से बात करने की उम्मीद करते हैं, मुझसे एक वास्तविक MTA से दूर हो जाते हैं।
msw

msw, मुझे पूरा यकीन नहीं है कि आप क्यों दावा कर रहे हैं कि exim4 केवल एक ही कैनोनिकल सपोर्ट है, पोस्टफिक्स भी मेन में है और अगर आप ubuntu-server इंस्टॉल से मेल सर्वर टास्क सिलेक्शन का चयन करते हैं तो यह सक्षम है। मेरा मानना ​​है कि डेबियन डिफॉल्ट एमटीए को एग्जॉस्ट करता है, और अतीत में, पैकेजिंग वरीयताओं के कारण इसे डिफ़ॉल्ट रूप से खींचा जा सकता है, लेकिन अब थोड़ी देर के लिए, पोस्टफिक्स निश्चित रूप से उबंटू में पसंदीदा एमटीए है।
स्टीव बीटटी

ओह, और यह भी ध्यान दें कि यदि आप अपने (गैर-माइम जागरूक) MUA के रूप में bsd मेल / mailx के साथ गए थे, तो आपको वास्तव में मेल भेजने के लिए किसी प्रकार के MTA की आवश्यकता होगी। लेकिन वैसे भी आप के लिए म्यूट बेहतर है। :-)
स्टीव बीटटी

11

मुझे अटैचमेंट फाइल भेजने में भी बहुत परेशानी हुई। जब मैंने अटैचमेंट के बिना एक ईमेल भेजा, तो यह सफल था लेकिन अनुलग्नक के साथ नहीं था। इस समस्या से बराबर था sendemail, mutt, mail, mailx, uuencodeआदेशों।

सौभाग्य से, यह मजेदार तरीके से हल किया गया था। मैं ईमेल भेजने के लिए जीमेल का उपयोग करता हूं। आप टर्मिनल के माध्यम से ईमेल भेजने के लिए अपने gmail को कॉन्फ़िगर कर सकते हैं जैसे कि http://www.linuxandlife.com/2013/01/send-email-from-linux-terminal.html पर घोषित किया गया है ।

आप एक पाठ ईमेल का उपयोग कर भेज सकते हैं:

mail -s "hello" RECEIVE@mail.com < /home/masoud/YOURFILE.txt 

लेकिन आप नीचे दिए गए अनुलग्नक के रूप में एक ही फ़ाइल नहीं भेज सकते हैं:

mail -s "hello" RECEIVE@mail.com -a /home/masoud/YOURFILE.txt

या:

mail -s "hello" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com

अंत में, मैं समझ गया कि केवल यह प्रारूप एक अनुलग्नक भेज सकता है:

echo "your message here" | mail -s "title" -a /home/masoud/YOURFILE.txt RECEIVE@mail.com

मजेदार रूप से, अंतर "इको" कमांड का अस्तित्व है।

अपडेट: २० 201०8

ऐसा लगता है कि अब अनुलग्नक के लिए अपरकेस के -aसाथ विकल्प बदल दिया गया है । के अनुसार शीर्ष लेख को बदलने के लिए हो रहा है डॉक -A-a


अति उत्कृष्ट! धन्यवाद। मैं अपनी .zshrcफ़ाइल किसी को भेजने की कोशिश कर रहा था और यद्यपि मैं mailत्वरित संदेश भेजने के लिए बहुत अधिक उपयोग करता हूं , एक अनुलग्नक भेजने की कोशिश नहीं कर रहा था। मुझे सिर्फ इस बात की पुष्टि की आवश्यकता थी कि यह महसूस करना संभव था कि तर्क आदेश बहुत महत्वपूर्ण है। इसने मेरे लिए काम किया: mail -s "zshrc" -a ~/.zshrc username@example.com... बेशक मुझे अभी भी संदेश की बॉडी टाइप करनी थी और ctrl+dआखिरी ब्लैंक लाइन पर हिट करना था।
कार्ल विल्बर

mail username@example.com -a ~/.zshrcइसमें "काम" का उपयोग करते हुए इसने संदेश भेजा लेकिन इसने फ़ाइल नहीं भेजी। अगर मैंने कोशिश की mail username@example.com -a ~/.zshrc -s 'zshrc'होती तो यह स्पष्ट होता कि प्राप्तकर्ता के पते के बाद के पार्स को नजरअंदाज किया जा रहा है।
कार्ल विल्बर

@Masoud lnk टूटा हुआ है ... इसे अद्यतन करना चाहते थे, लेकिन आप बेहतर जानते हैं कि आपने जो दस्तावेज़ प्रदान किए हैं, इसलिए मैंने इसे आपको दिया है
फिलिप गचौड

6

मैंने पाया कि हाल ही में कमांड और मापदंडों को बदल दिया गया है।

यदि आप इस कमांड के साथ अपने अटैचमेंट भेजना चाहते हैं:

mail -s "your subject" you@gmail.com -A /your/attachment/absolute/path < /home/you/message.txt

विकल्प ऐसा attachmentहोना चाहिए -Aजो CAPITAL हो A


3

आप शेल से फ़ाइल भेजना चाह सकते हैं , लेकिन अन्यथा थंडरबर्ड का उपयोग करें

इस मामले में, प्रयास thunderbird -remote ...उपयोगी है - यह माना जाता है कि थंडरबर्ड आमतौर पर चल रहा है:

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

मेल के लिए you@example.com, "S", बॉडी "B", और अटैचमेंट के साथ /some/absolute/file.txt, एक कमांड है

thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='/some/absolute/file.txt')"

दो समस्याएं हैं:

संलग्न फ़ाइल को एक पूर्ण पथ द्वारा दिए जाने की आवश्यकता है , जो व्यवहार में थकाऊ है। readlink -fरिश्तेदार रास्तों को हल करने के लिए उपयोग करके इसे संभाला जा सकता है:

thunderbird -remote "xfeDoCommand(composeMessage,subject='S',to='you@example.com',body='B',attachment='$(readlink -f file.txt)')"

साथ ही, कमांड लंबी होनी है। चार तर्कों के साथ एक शेल स्क्रिप्ट या शेल फ़ंक्शन का उपयोग करें:

thunderbird-compose () {
    thunderbird -remote "xfeDoCommand(composeMessage,subject='$1',to='$2',body='$3',attachment='$(readlink -f $4)')"
}

इस फ़ंक्शन के साथ, कमांड पठनीय हो जाती है:

thunderbird-compose 'Some Subject' test@example.com 'Body of message' file1

अटैचमेंट के साथ एक थंडरबर्ड "राइट" विंडो खोलेगा और इसमें से, टू, सब्जेक्ट और बॉडी टेक्स्ट भरा जाएगा । इसे भेजने से पहले इसे एडिट किया जा सकता है।


2

heirloom-mailxडेबियन में पैकेज mailxआसानी से माइम संलग्नक भेजने के लिए कमांड प्रदान करता है । मेरे लिए निम्नलिखित कार्य;

 mailx -a attachment.zip -s subject rctp@domain.to

1
यह वह लापता टुकड़ा था जिसकी मुझे आवश्यकता थी; mailऔर mailxआरएच प्रतिमूर्तियाँ के साथ शामिल है -aफ़ाइल अनुलग्नकों के लिए, लेकिन डेबियन प्रतिमूर्तियाँ में शामिल एक नहीं करता है।
डोपघोटी

0

मैं एक और उत्तर जोड़ना चाहता हूं जिसका उपयोग अटैचमेंट के साथ बॉडी टेक्स्ट को जोड़ने के लिए किया जाता है। चीयर्स !!

echo "This is the message body" | mutt -a "/path/to/file.to.attach" -s "subject of message" -- recipient@domain.com
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.