2013-01-01 63 views
8

मैं मेलगुन का उपयोग कर रहा हूं (हालांकि इस प्रश्न का मेलगुन से कोई लेना देना नहीं है) आने वाले ईमेल और मेलगुन को पार्स करने के लिए http मेरे सर्वर पर पार्स किए गए ईमेल को पोस्ट करेगा। जब मुझे पोस्ट प्राप्त हुआ, तो मुझे बहु-भाग ईमेल के लिए HTML कोड मिला। मैं अपने उपयोगकर्ता के लिए HTML ईमेल प्रदर्शित करने के लिए, मैं रेल उपयोग कर रहा हूँ चाहते हैं, तो यहएचटीएमएल कोड के ब्लॉक के लिए नींव या बूटस्ट्रैप स्टाइल को कैसे अक्षम करें?

<div> 
    <%= raw(message.body_html) %> 
</div> 

हालांकि की तरह कुछ है, यह अलग दिखता है की तुलना में यह करता है जब मैं याहू या हॉटमेल में एक ही ईमेल देखने (मैं अलग पता है ईमेल क्लाइंट HTML ईमेल को अलग-अलग प्रदर्शित करेगा, लेकिन मेरा बहुत बड़ा दिखता है)।

यह इस प्रकार से मेरी स्वयं बनाया क्लाइंट पर दिखाई देता है: html email display in my self-built client

और यह है कि यह कैसे एक ही ईमेल के लिए याहू में दिखाई देता है: html email display in yahoo

मैं अपने स्टाइल ढांचे के रूप में Zurb फाउंडेशन का उपयोग करें। हालांकि, मुझे लगता है कि ईमेल एचटीएमएल अपनी खुद की लाइन स्टाइल के साथ आता है, मैं उस कोड को देखता हूं जो ऐसा लगता है, फिर यह अन्य ग्राहकों के साथ समान दिखना चाहिए।

तो क्या आप एचटीएमएल कोड का एक खंड हो जाते हैं और यह प्रदर्शित करने के लिए के रूप में अपनी शैली को अधिलेखित अन्य चौखटे दे बिना है चाहता हूँ संभालने HTML ईमेल प्रदर्शित करने के लिए सबसे अच्छा अभ्यास है?

इसके अलावा अधिक, यह संभव तरह

<div> 
    <% disable_foundation_styling begin %> 
    <%= raw(message.body_html) %> 
    <% end %> 
</div> 

बेशक कोड का एक खंड के लिए स्टाइल (उस बात के लिए या चहचहाना बूटस्ट्रैप) फाउंडेशन निष्क्रिय करने के लिए, उदाहरण के लिए, कुछ है "disable_foundation_styling" केवल मेरे कल्पना है।

अग्रिम धन्यवाद!

!!!!!!!!! अद्यतन 1/1/2013 !!!!!!!!!!!!!!

रूप @Alex एल सुझाव दिया है, मैं कोशिश की, लेकिन यह नहीं है शांत काम अपेक्षा के अनुरूप। iframe दृश्य में सबकुछ पहले जैसा दिखता है (नीचे चित्र देखें), और यह समझ में आता है, क्योंकि आईफ्रेम सामग्री केवल एक अन्य नियंत्रक का दृश्य है, जिस स्थिति में रेल में सभी एप्लिकेशन लेआउट टेम्पलेट्स भी शामिल होंगे। हालांकि, टूलबार मेरी सबसे बड़ी चिंता नहीं है, आईफ्रेम के अंदर यह ठीक है जैसा कि पहले जैसा दिखता है। enter image description here

मुझे संदेह है कि iframe ऐसा करने का तरीका नहीं हो सकता है। मैं जीमेल और याहू दोनों के कोड को देखता हूं, और वे iframe का उपयोग नहीं करते हैं। इसके बजाय वे HTML ईमेल प्रस्तुत करने के लिए बहुत गहरी घोंसला का उपयोग करते हैं। एचटीएमएल ईमेल का हिस्सा दोनों याहू और जीमेल दोनों के लिए एक ही कोड है, सिवाय इसके कि याहू प्रत्येक एकल डीओएम तत्व के लिए अपनी आईडी डालें।

तो अब मुझे लगता है कुछ नींव स्टाइल कि प्रभावित कि यह कैसा दिखता है।

मैं और अधिक जानने के बाद अपडेट करूंगा।

उत्तर

2

मेरी जानकारी के लिए यह एक ब्राउज़र को निर्देश देने चुनिंदा डोम के एक सबसेट के भीतर अपने पृष्ठ के सीएसएस अनदेखी करने के लिए संभव नहीं है। आपको पृष्ठ की मौजूदा शैली को स्पष्ट रूप से ओवरराइड करना होगा।

हालांकि, यदि आपके पास iframe तत्व है, तो उस फ्रेम की सामग्री को शामिल पृष्ठ पर लागू किसी भी शैली से स्वतंत्र रूप से प्रस्तुत किया जाएगा।तो आप एक अलग नियंत्रक बना सकते हैं और केवल अपने संदेश की सामग्री को प्रस्तुत करने के लिए देख सकते हैं, और iframe के स्रोत के रूप में इसका उपयोग कर सकते हैं।

+0

इस प्रशंसनीय लगता है, मुझे इसे आज रात एक बहुत कोशिश करते हैं और परिणाम का अद्यतन करें, धन्यवाद करते हैं। – lionel

+0

यह पता चला है कि चाल नहीं है, कृपया अधिक जानकारी के लिए प्रश्न में मेरे अपडेट देखें। हालांकि सुझावों के लिए धन्यवाद। – lionel

+0

आपको नियंत्रक के लिए एक विशेष लेआउट का उपयोग करना चाहिए और इसे iframe के अंदर प्रस्तुत किया जा रहा है, या नियंत्रक को 'प्रस्तुत करना चाहिए: लेआउट => झूठा' होना चाहिए। ज़र्ब, बूटस्ट्रैप, इत्यादि, यदि आप इनलाइन पेज को प्रस्तुत करने के लिए अपने सामान्य एप्लिकेशन लेआउट का उपयोग करते हैं, तो अभी भी iframe के भीतर सक्षम हो जाएगा। –