हेलो हेब्रसर्स!
हाल ही में मुझे HTML प्रारूप में अक्षरों के वितरण में देरी करने का मौका मिला। मान्य मेलिंग सूची लेआउट के विषय पर कई लेख लिखे गए हैं, लेकिन यह इस बारे में नहीं है। यह ज्ञात है कि प्रत्येक मेलर के पास HTML पत्र प्रदर्शित करने की अपनी ख़ासियत होती है। मुझे अलग-अलग मेलर्स पर पत्रों के प्रदर्शन में इन विशेषताओं और अंतरों में दिलचस्पी थी।
Mail.ru, yandex.ru और gmail.com सेवाओं में मेरे तीन मेलबॉक्स अध्ययन के तहत गिर गए। एक स्क्रिप्ट लिखी गई थी जो उन्हें HTML प्रारूप में एक ही पत्र भेजती थी। इसके साथ, मैंने कई विकल्प चलाए और परिणामों की तुलना की। यहाँ क्या हुआ:
बॉडी टैग
मेलर्स द्वारा प्रदर्शित पत्र का मुख्य भाग बॉडी टैग से शुरू होता है। यह समझ में आता है - पूरा पत्र इसमें निहित है। हालाँकि, बॉडी टैग में एक शैली विशेषता हो सकती है। प्रत्येक मेलर में, अक्षर के शरीर को एक div द्वारा दर्शाया जाता है, लेकिन हर कोई इस div को शैली की सामग्री स्थानांतरित नहीं करता है।
- Mail.ru - बॉडी टैग को <div id = 'style_ id _BODY'> द्वारा बदल दिया जाता है, जहाँ GET अनुरोध पंक्ति में आईडी को प्रेषित उपयोगकर्ता आईडी है। शैली विशेषता खो जाती है। इसके अलावा, बॉडी टैग के लिए निर्दिष्ट कोई अन्य विशेषता खो जाती है।
- Yandex.ru - शरीर का टैग <div class = 'b-message-body__content'> में बदल जाता है। शैलियाँ पोर्टेबल नहीं हैं, किसी अन्य बॉडी टैग विशेषता की तरह।
- Gmail.com - शरीर टैग एक नियमित div में बदलता है, शैलियों को स्थानांतरित कर दिया जाता है। इसके अलावा, शरीर के लिए निर्धारित विशेषताएं इस div (प्रकार की पृष्ठभूमि की विशेषताएँ) में आती हैं।
शैली विशेषता स्थानांतरित करने के लिए सुविधाएँ
शैली विशेषता अक्सर मेल इंजन द्वारा पार्स की जाती है और उपयोगकर्ता को भेजे जाने से पहले इसे बदला जा सकता है। यह अध्ययन किए गए मेलर्स पर कैसे होता है:
- Mail.ru - शैली विशेषता को सिद्धांत के अनुसार संसाधित किया जाता है "सब कुछ अनुमत है, जो स्पष्ट रूप से निषिद्ध नहीं है।" अब तक, उस स्थिति का पता लगाना संभव हो गया है: पूर्ण प्रतिबंध के तहत आता है।
- Yandex.ru - शैली विशेषताएँ पूर्व-संसाधित हैं। अपरिचित शैलियों (और, तदनुसार, त्रुटियों) को छोड़ नहीं दिया जाता है। शैलियों की ट्रिमिंग इस तरह से होती है कि पहली अज्ञात तक की सभी शैलियाँ क्लाइंट को प्रदर्शित पत्र में मिलती हैं। इस प्रकार, निर्माण चौड़ाई: 100px; कुछ-नई-शैली: नई; पृष्ठभूमि-रंग: #CCC; चौड़ाई द्वारा प्रतिस्थापित किया जाएगा : 100px;
- Gmail.com - स्टाइल विशेषताएँ भी पूर्व-संसाधित हैं, हालांकि, इस मामले में, आवश्यकताएं Yandex.ru की तुलना में अधिक कठोर हैं। यदि विशेषता मान में कम से कम एक अमान्य शैली पाई जाती है, तो संपूर्ण विशेषता को अनदेखा कर दिया जाता है।
नकारात्मक मूल्य
HTML मेलिंग के लेआउट के सभी लेखों में, यह बार-बार उल्लेख किया गया है कि नकारात्मक मान (उदाहरण के लिए, मार्जिन में) भुलाए जा सकते हैं। परीक्षा परिणाम काफी अपेक्षित है:
- Mail.ru - मार्जिन-लेफ्ट: -100px; - यह काम करता है।
- Yandex.ru - मार्जिन-लेफ्ट: -100px; - काम नहीं करता।
- Gmail.com - मार्जिन-लेफ्ट: -100px; काम नहीं कर रहा है।
Mail.ru में मार्जिन विशेषता को केवल इसलिए छोड़ दिया जाता है क्योंकि वहां की शैलियाँ पूर्व-प्रसंस्करण से नहीं गुजरती हैं।
CSS3 का समर्थन
CSS 3 अभी विकास के अधीन है, और कुछ मेलर्स कुछ विशेषताओं को अमान्य मानते हैं। इसलिए, हम अपने तीन ग्राहकों पर कुछ CSS3 नियमों का परीक्षण करते हैं:
Mail.ru
स्टाइल टैग के बहुत वफादार फ़िल्टरिंग के कारण CSS3 और किसी भी अन्य ब्राउज़र-निर्भर विशेषताओं के लिए पूर्ण समर्थन।
Yandex.ru
- रैखिक-ढाल - हाँ
- बॉक्स-छाया - नहीं
- सीमा-त्रिज्या - हाँ
- पाठ-छाया - नहीं
- शब्द-लपेट - नहीं
- आकार बदलें - नहीं
- कुछ पृष्ठभूमि'ओव - हाँ
- सीमा-छवि - हाँ
Gmail.com
- रैखिक-ढाल - नहीं
- बॉक्स-छाया - नहीं
- सीमा-त्रिज्या - हाँ
- पाठ-छाया - हाँ
- शब्द-लपेट - हाँ
- आकार बदलें - नहीं
- कुछ पृष्ठभूमि'ओव - हाँ
- सीमा-छवि -नहीं
सीएसएस ऊंचाई
ऊंचाई विशेषता सभी मेलर्स द्वारा समर्थित नहीं है।
- Mail.ru - समर्थित।
- Yandex.ru - समर्थित।
- Gmail.com - समर्थित नहीं है, जिसे मिनट-ऊँचाई द्वारा प्रतिस्थापित किया गया है।
UPD: टिप्पणियों में यह पता चला है कि जावास्क्रिप्ट: *** और एक्सप्रेशन: *** को mail.ru सुरक्षा प्रणाली द्वारा अवरुद्ध किया गया है।