2012-05-17 13 views
19

Mail multipart/alternative vs multipart/mixed का जवाब पता चलता है कि संलग्नक multipart/alternative संदेश के साथियों, की तरह होना चाहिए:एमआईएम प्रकार एचटीएमएल, ईमेल, छवियों और सादा पाठ को संतुष्ट करने के लिए?

  • बहुखण्डीय/मिश्रित
    • बहुखण्डीय/विकल्प
      • पाठ/सादे
      • पाठ/html
    • एस ome/बात (स्वभाव: लगाव)
    • कुछ/बात (स्वभाव: लगाव)
    • ...

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

  • बहुखण्डीय/विकल्प
    • पाठ/सादे
    • बहुखण्डीय/संबंधित
      • पाठ/html
      • छवि/gif
      • (सीआईडी ​​द्वारा छवियों को संदर्भित)
      • छवि/gif
      • ...

इस तरह, छवियों एचटीएमएल हिस्सा प्रतिपादन के प्रयोजन के लिए स्पष्ट रूप से कर रहे हैं। इसका एक पूर्ण उदाहरण होगा:

From: Rich Example <[email protected]> 
To: A Recipient <[email protected]> 
Subject: An example of email with images and a plain alternative 
MIME-Version: 1.0 
Content-Type: multipart/alternative; boundary="outer-boundary" 

This is a MIME-encoded message. If you are seeing this, your mail 
reader is old. 
--outer-boundary 
Content-Type: text/plain; charset=us-ascii 

This message might make you :) or it might make you :(

--outer-boundary 
MIME-Version: 1.0 
Content-Type: multipart/related; 
    type="text/html"; start="<[email protected]>"; boundary="inner-boundary" 

--inner-boundary 
Content-Type: text/html; charset=us-ascii 
Content-Disposition: inline 
Content-ID: <[email protected]> 

<html> 
<body> 
    This message might make you 
    <img src="cid:[email protected]" alt="smile"> 
    or it might make you 
    <img src="cid:[email protected]" alt="frown"> 
</body> 
</html> 

--inner-boundary 
Content-Type: image/gif 
Content-Disposition: inline 
Content-Transfer-Encoding: base64 
Content-ID: <[email protected]> 

R0lGODlhEAAQAKEBAAAAAP//AP//AP//ACH5BAEKAAIALAAAAAAQABAAAAIzlA2px6IBw2 
IpWglOvTahDgGdI0ZlGW5meKlci6JrasrqkypxJr8S0oNpgqkGLtcY6hoFADs= 

--inner-boundary 
Content-Type: image/gif 
Content-Disposition: inline 
Content-Transfer-Encoding: base64 
Content-ID: <[email protected]> 

R0lGODlhEAAQAKEBAAAAAAD//wD//wD//yH5BAEKAAIALAAAAAAQABAAAAIzlA2px6IBw2 
IpWglOvTahDgGdI0ZlGW5meKlci75drDzm5uLZyZ1I3Mv8ZB5Krtgg1RoFADs= 

--inner-boundary-- 

--outer-boundary-- 
+1

यह रेफरी के प्रश्न का सटीक डुप्ली होने लगता है: http://stackoverflow.com/questions/3902455/smtp-multipart-alternative-vs-multipart- मिश्रित –

+3

इरादे में थोड़ा अंतर (चाहे मैंने स्पष्ट रूप से इसे व्यक्त किया हो या नहीं) संलग्नक के उद्देश्य से करना पड़ सकता है। यदि वे समृद्ध प्रतिपादन _for_ _ लोगो हैं, जैसे लोगो, पंख, पंख, आदि), क्या वे अमीर विकल्प में "इन" होना चाहिए? Ref'd सवाल भी 'संबंधित' का कोई उल्लेख नहीं करता है। –

उत्तर

8

आप सही हैं। इनलाइन छवियों को multipart/related माइम-इकाई (आरएफसी 2387) में संग्रहीत किया जाना चाहिए और multipart/alternative (आरएफसी 2046) के साथ कई सामग्री-प्रकार विकल्पों की पेशकश की जा सकती है।
अनुलग्नक जोड़ने के लिए आप पूरी संरचना को multipart/mixed में डाल सकते हैं और अनुलग्नक जोड़ सकते हैं।

  • बहुखण्डीय/मिश्रित
    • बहुखण्डीय/विकल्प
      • पाठ/सादे
      • बहुखण्डीय/संबंधित
        • पाठ/html
        • छवि/gif
        • छवि/gif
    • कुछ/बात (स्वभाव: लगाव)
    • कुछ/बात (स्वभाव: अनुलग्नक)

तुम भी पाठ/सादे संदेशों में इनलाइन छवि का उपयोग कर सकते है, लेकिन सभी MUA इसका समर्थन करें। (प्रयोग कोई नहीं या स्वभाव: इनलाइन)

  • बहुखण्डीय/मिश्रित
    • पाठ/सादे (छवि के ऊपर पाठ)
    • छवि/gif
    • पाठ/सादे (चित्र के नीचे टेक्स्ट)

और मुझे इसे मल्टीपार्ट/वैकल्पिक HTML-Email के साथ संयोजित करने का एक साफ तरीका नहीं पता है।

+0

क्षमा करें, मुझे यह सही नहीं लगता। मल्टीपार्ट/विकल्प के अंदर केवल दो आइटम हैं: टेक्स्ट और एचटीएमएल। विकल्प एक मल्टीपार्ट/संबंधित के अंदर है। देखें: http://stackoverflow.com/a/40420648/633961 – guettli

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