कॉर्नशेल (केएसएच) कोड मेलक्स और यूएनकोड के साथ अनुलग्नक भेजने के लिए?

मुझे मेलक्स के साथ एक फाइल संलग्न करने की जरूरत है लेकिन फिलहाल मुझे सफलता नहीं मिल रही है।

मेरा कोड यहां है:

subject="Something happened"
to="[email protected]"
body="Attachment Test"
attachment=/path/to/somefile.csv

uuencode $attachment | mailx -s "$subject" "$to" << EOF

The message is ready to be sent with the following file or link attachments:

somefile.csv

Note: To protect against computer viruses, e-mail programs may prevent
sending or receiving certain types of file attachments.  Check your
e-mail security settings to determine how attachments are handled.

EOF

किसी भी प्रतिक्रिया की अत्यधिक सराहना की जाएगी।


Update I have added the attachment var to avoid having to use the path every time.

0

2 उत्तर

आपको अपने संदेश के टेक्स्ट और यूनेकोडेड अटैचमेंट दोनों को जोड़ना होगा:

$ subject="Something happened"
$ to="[email protected]"
$ body="Attachment Test"
$ attachment=/path/to/somefile.csv
$
$ cat >msg.txt < The message is ready to be sent with the following file or link attachments:
>
> somefile.csv
>
> Note: To protect against computer viruses, e-mail programs may prevent
> sending or receiving certain types of file attachments.  Check your
> e-mail security settings to determine how attachments are handled.
>
> EOF
$ ( cat msg.txt ; uuencode $attachment somefile.csv) | mailx -s "$subject" "$to"

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

0
जोड़ा
उत्तर के लिए धन्यवाद! तो msgstr "ईओएफ द्वारा msgstr" आखिरी पंक्ति में reused किया जा रहा है?
जोड़ा लेखक Nano Taboada, स्रोत
यह निम्न त्रुटि फेंक रहा है: बिल्ली: msg.txt नहीं खोल सकता है
जोड़ा लेखक Nano Taboada, स्रोत
मेरी गलती! मैंने बिल्ली को स्थान दिया है> msg.txt << ईओएफ
जोड़ा लेखक Nano Taboada, स्रोत

खैर, यहां आपको मिली कुछ पहली समस्याएं हैं।

  1. आप यह मानते हुए प्रतीत होते हैं कि कोई मेल क्लाइंट किसी भी शीर्षलेख के बिना यूएनकोडेड अटैचमेंट को संभालने जा रहा है। ऐसा नहीं होगा।

  2. आप I/O पुनर्निर्देशन का दुरुपयोग कर रहे हैं: यूनकोड का आउटपुट और यहां-दस्तावेज़ दोनों मेलक्स को खिलाया जा रहा है, जो नहीं हो सकता है।

  3. आप यूनकोड का दुरुपयोग कर रहे हैं: यदि एक पथ दिया गया है, तो यह डीकोडेड फ़ाइल देने के लिए सिर्फ एक नाम है, इनपुट फ़ाइल नाम नहीं। फ़ाइल को दो बार देने से डीकोडेड फ़ाइल में वही नाम असाइन किया जाएगा जो पढ़ा गया था। -एम फ्लैग बल 6464 एन्कोड। लेकिन यह अभी भी मेलक्स के लिए अनुलग्नक हेडर प्रदान नहीं करेगा।

आप mpack की एक प्रति प्राप्त करने के तरीके बेहतर तरीके से कर रहे हैं, जो आप चाहते हैं जो करेंगे।

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

cat <

कई अन्य संभावनाएं हैं ... लेकिन यह अभी भी यहां दस्तावेज़ है जैसा कि आपके उदाहरण में था और मेरे सिर के ऊपर से आसान था, और इसमें कोई अस्थायी फ़ाइल शामिल नहीं है।

0
जोड़ा
बहुत धन्यवाद! हां मैंने देखा है कि वहां पर म्यूट है जो सरल अनुलग्नक कर सकता है लेकिन चूंकि मैं उस बॉक्स में रूट नहीं हूं, इसलिए मुझे किसी भी मेलएक्स हैक से निपटना होगा।
जोड़ा लेखक Nano Taboada, स्रोत
मुझे निम्न त्रुटि हो रही है: uuencode: अवैध विकल्प - एम उपयोग: uuencode [infile] remotefile
जोड़ा लेखक Nano Taboada, स्रोत
आपके पास uuencode का पुराना संस्करण है, इससे पहले कि यह बेस 64 एन्कोडिंग प्रदान करता है ... आप अभी भी mpack प्राप्त कर सकते हैं और इसे अपने खाते के अंतर्गत स्थानीय रूप से उपयोग के लिए संकलित कर सकते हैं ... यही वह है जो मैं शायद करूँगा।
जोड़ा लेखक Thomas Kammeyer, स्रोत