मैं कोड में एक HTML ईमेल भेजने जा रहा हूं जिसमें असुरक्षित उपयोगकर्ता इनपुट हो सकता है। मैंने देखा है कि यदि मैं एचटीएमएल विषय से बचता हूं, तो जीमेल तब से बच निकली सामग्री प्रदर्शित करेगा (इसलिए यदि मेरा विषय "This & That"
है, जिसे मैं "This & That"
के रूप में स्वच्छ करता हूं, तो जीमेल बाद में दिखाता है)। थंडरबर्ड के लिए भी यही है। क्या यह मानना सुरक्षित है कि सभी ईमेल क्लाइंटों को विषय HTML से बचने की आवश्यकता नहीं है?क्या ईमेल विषयों को HTML से बचने की आवश्यकता है?
उत्तर
किसी विषय पंक्ति में HTML इकाइयों को एन्कोड करने की आवश्यकता नहीं है। एचटीएमएल बॉडी में एन्कोडिंग का कारण यह है कि यदि आप एक्सएचटीएमएल का उपयोग कर रहे हैं, क्योंकि यह एक्सएमएल से निकला है, तो आरक्षित चरित्र के रूप में &
का इलाज करता है।
हालांकि, ईमेल की विषय पंक्ति HTML, XML या XHTML में नहीं है। यह सिर्फ शुद्ध पाठ है। इस वजह से, आपको &
के रूप में एम्पर्सेंड को एन्कोड करने की आवश्यकता नहीं है। यदि आप इसे एन्कोड करते हैं, क्योंकि इसे HTML के रूप में पार्स नहीं किया जा रहा है, तो इसे एन्कोडेड के रूप में प्रदर्शित किया जाएगा।
यदि आप गैर-ASCII वर्ण (उदा। £
) शामिल करना चाहते हैं, तो आपको यूटीएफ -8 के रूप में पूरे 'लिफाफे' (ईमेल बॉडी समेत) को एन्कोड करना होगा।
| Subject Line | Body
====================================
& | & | &
& | & | &
UTF-8 £ | £ | £
ASCII £ | n/a | n/a
£ | £ | £
एनबी::
तो, कोड में, निम्नलिखित के रूप में दिखाया जाएगा माइक्रोसॉफ्ट ऑफिस UTF-8 के एक अजीब कार्यान्वयन है, इसलिए सभी UTF-8 वर्णों काम करेंगे।
विषय फ़ील्ड "HTML सामग्री" के के बाहर है। एचटीएमएल के साथ इसका कोई संबंध नहीं है।
हालांकि, मैं इस के लिए एक संदर्भ ...
विषय की वे भाग निकले जा सकता है, एचटीएमएल तथापि भाग निकले होने की जरूरत नहीं है नहीं है। मूल एसएमटीपी स्पेक ने परिभाषित किया कि संदेश एएससीआई (RFC822 धारा 3) होना चाहिए। यह RFC2822 में पुष्टि हुई थी, हालांकि RFC2047 हेडर एक्सटेंशन को परिभाषित करता है जो आपको गैर-एसीआईआई टेक्स्ट को अनुमति देने के लिए माइम संदेशों के भीतर हेडर फ़ील्ड को एन्कोड करने की अनुमति देता है।
यह एन्कोडेड-शब्द प्रारूप आपको ईमेल शीर्षकों के भीतर utf-8 जैसे एन्कोडिंग का उपयोग करने की अनुमति देता है। उदाहरण के लिए:
=?iso-8859-1?q?this=20is=20some=20text?=
यह "यह कुछ पाठ है" का आईएसओ -885 9 -1 एन्कोडेड संस्करण है। इस विधि का उपयोग पाउंड प्रतीक (£) या उच्चारण/गैर-असीसी वर्णों जैसी चीज़ों को एनोड करने के लिए किया जा सकता है।
जबकि आपको विषय को HTML एन्कोड करने की आवश्यकता नहीं है, तो इसके संदर्भ में इसे संदर्भित करने के लिए सुनिश्चित करें: HTTP हेडर। '\ N' और' \ r' जैसे लाइन ब्रेक वर्ण हटाएं! –