2013-07-31 7 views
8

SO.com में पूर्व पदों के साथ मैंने ईमेल स्क्रिप्ट में छवि इनलाइन के साथ अपने Outlook खाते में ईमेल भेजने के लिए अपनी स्क्रिप्ट बनाने का प्रयास किया है। लेकिन एचटीएमएल सामग्री छवि को प्रदर्शित करने के बजाय एचटीएमएल में प्रदर्शित हो रही है। कृपया मदद करे।यूनिक्स sendmail - एचटीएमएल एम्बेड छवि काम नहीं कर रहा

यहाँ मेरी टुकड़ा है

{ 
echo "TO: [email protected]" 
echo "FROM: [email protected]>" 
echo "SUBJECT: Embed image test" 
echo "MIME-Version: 1.0" 
echo "Content-Type: multipart/related;boundary="--XYZ"" 

echo "--XYZ" 
echo "Content-Type: text/html; charset=ISO-8859-15" 
echo "Content-Transfer-Encoding: 7bit" 
echo "<html>" 
echo "<head>" 
echo "<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">" 
echo "</head>" 
echo "<body bgcolor="#ffffff" text="#000000">" 
echo "<img src="cid:part1.06090408.01060107" alt="">" 
echo "</body>" 
echo "</html>" 


echo "--XYZ" 
echo "Content-Type: image/jpeg;name="sathy.jpg"" 
echo "Content-Transfer-Encoding: base64" 
echo "Content-ID: <part1.06090408.01060107>" 
echo "Content-Disposition: inline; filename="sathy.jpg"" 
echo $(base64 sathy.jpg) 
echo "' />" 
echo "--XYZ--" 
}| /usr/lib/sendmail -t 

ईमेल मुझे प्राप्त होता है नीचे नहीं बल्कि छवि प्रदर्शित,

--XYZ 
Content-Type: text/html; charset=ISO-8859-15 
Content-Transfer-Encoding: 7bit 
<html> 
<head> 
<meta http-equiv=content-type content=text/html 
</head> 
<body bgcolor=#ffffff text=#000000> 
<img src=cid:part1.06090408.01060107 alt=> 
</body> 
</html> 
--XYZ 
Content-Type: image/jpeg;name=sathy.jpg 
Content-Transfer-Encoding: base64 
Content-ID: <part1.06090408.01060107> 
Content-Disposition: inline; filename=sathy.jpg 
/9j/4QAYRXhpZgAASUkqAAgAAAAAAAAAAAAAAP/sABFEdWNreQABAAQAAAAoAAD/4QNxaHR0cDov 
....base64 values..... 
/> 
--XYZ-- 
----XYZ-- 

तुम मुझे करने में सहायता कर सकते हैं कृपया मुझे क्या

उत्तर

16

जिस तरह से आप याद आ रही है संदेश शीर्षलेख मुद्रित करने के लिए echo का उपयोग करें, यह सभी डबल कोट्स खाता है - इसे काम करने के लिए आपको बैकस्लैश (\") से बचने की आवश्यकता है।

इसके अलावा, आपकी सीमा गलत है। यदि आप boundary=--XYZ परिभाषित करते हैं, तो प्रत्येक संदेश भाग को ----XYZ से शुरू करने की आवश्यकता होती है (आपको दो डैश जोड़ें), अन्यथा आपकी सीमा केवल XYZ होनी चाहिए। और माइम भागों के शीर्षकों को निकायों से खाली रेखा से अलग किया जाना चाहिए।

तुम सच में एक खोल स्क्रिप्ट से एक मेल उत्पन्न करने के लिए की जरूरत है, तो मेरे सलाह सभी गूंज से छुटकारा पाने के हो सकता है और बजाय एक हियरडॉक का प्रयोग करेंगे: आप के लिए

sendmail -t <<EOT 
TO: [email protected] 
FROM: <[email protected]> 
SUBJECT: Embed image test 
MIME-Version: 1.0 
Content-Type: multipart/related;boundary="XYZ" 

--XYZ 
Content-Type: text/html; charset=ISO-8859-15 
Content-Transfer-Encoding: 7bit 

<html> 
<head> 
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-15"> 
</head> 
<body bgcolor="#ffffff" text="#000000"> 
<img src="cid:part1.06090408.01060107" alt=""> 
</body> 
</html> 

--XYZ 
Content-Type: image/jpeg;name="sathy.jpg" 
Content-Transfer-Encoding: base64 
Content-ID: <part1.06090408.01060107> 
Content-Disposition: inline; filename="sathy.jpg" 

$(base64 sathy.jpg) 
--XYZ-- 
EOT 
+0

1/0 धन्यवाद। तो स्पष्ट और विस्तृत स्पष्टीकरण। आपने धमाल मचाया!! – Sathy

+0

बहुत बढ़िया प्रतिक्रिया! यह 'मेल-आर' <[email protected]> "-s" एम्बेड छवि परीक्षण "-a" एमआईएमई-संस्करण: 1.0 "-ए" सामग्री-प्रकार: मल्टीपार्ट/मल्टीपार्ट/संबंधित; सीमा = \ "XYZ \" "[email protected] << ईओटी' और फिर '--XYZ' के साथ हेड्रोक शुरू करना और उसके बाद की हर चीज। – mat

+0

एकाधिक छवियों का उपयोग करने के लिए इस फ़ंक्शन का विस्तार कैसे करें? – sugunan

संबंधित मुद्दे