2011-12-02 17 views
5

में सही ढंग से नहीं दिखाया गया है क्या कोई मुझे समस्या के बारे में बता सकता है?रेल संलग्नक इनलाइन को जीमेल

मैं अपने रेल 3.1 आवेदन मेलर में इनलाइन संलग्नक का उपयोग कर रहा हूं। पत्र में छवियां भी शामिल हैं जो अमेज़ॅन डब्ल्यू 3 सर्वर पर संग्रहीत हैं।

समस्या यह है कि जीमेल सही ढंग से पत्र प्रदर्शित नहीं करता है। मेरे पास पत्र में इनलाइन अनुलग्नक हैं। लेकिन जीमेल इन फ़ाइलों को संलग्न लोगों के रूप में दिखाता है। पत्र में एक संलग्न HTML पृष्ठ भी शामिल है जिसमें पत्र स्वयं ही शामिल है। सभी जीमेल डिस्प्ले प्रतीकों का एक सेट है जो मुझे संलग्न छवियों में से एक के बेस 64 संस्करण का मानना ​​है।

स्क्रीनशॉट देखें।

मैं आवश्यक मात्रा में रेटिंग की कमी के कारण छवि पोस्ट नहीं कर सकता, इसलिए मैंने इसे here पोस्ट किया।

-if @image_url 
    = image_tag(attachments['offer_image'].url, :id => 'offer_image', :width => "320", :height => "320") 
-elsif @offer.image.nil? 
    = image_tag(attachments['blank'].url, :id => 'offer_image', :width => "320", :height => "320") 

मैं इसे सरल बनाने के लिए विवरण दर्ज नहीं हुए:

attachments.inline['blank'] = File.read("#{Rails.root.to_s + '/app/assets/images/blank_500x500.png'}") 
attachments.inline['discount-deal-triangle'] = File.read("#{Rails.root.to_s + '/app/assets/images/discount-deal-triangle.png'}") 
mail(:to => @subscriber.email, :subject => subject) 

और यहाँ दृश्य फ़ाइल में कोड है:

यहाँ मेरी मेलर में कोड है।

मैं क्या गलत कर रहा हूं?

उत्तर

11

सब कुछ मुझे एक समाधान मिला: आपको बस इतना करना है कि संलग्नक के माइम-प्रकार और एन्कोडिंग को सेट करें।

attachments.inline['blank'] = { 
           :data => File.read("#{Rails.root.to_s + '/app/assets/images/blank_500x500.png'}"), 
           :mime_type => "image/png", 
           :encoding => "base64" 
           } 
attachments.inline['discount-deal-triangle'] = { 
           :data => File.read("#{Rails.root.to_s + '/app/assets/images/discount-deal-triangle.png'}"), 
           :mime_type => "image/png", 
           :encoding => "base64" 
           } 

यह मेरे लिए चाल है।

5

इनलाइन सरणी में फ़ाइल एक्सटेंशन का उपयोग करें। उदाहरण:

attachments.inline['blank.png'] = 
    File.read(Rails.root.join('app', 'assets', 'images', 'blank_500x500.png') 

इस तरह रेल फ़ाइल mime_type और encoding लगता होगा। कम से कम रेल 4.2 ऐसा करेगा।

आप https://stackoverflow.com/a/25810153/2041318 का भी उल्लेख कर सकते हैं जहां आप मेलर इनलाइन छवियों के लिए अच्छी सहायक विधि पा सकते हैं।

0

मेरे प्रश्न के बाद उल्लेख करने योग्य मूल्य मेरे पास था जब मुझे यह प्रश्न मिला, लेकिन एक अलग मूल कारण था।

यदि आप रेल 4 चला रहे हैं और जीमेल में एक छवि दिखाने के साथ कोई समस्या है (लेकिन Outlook365 या ओएसएक्स मेलर क्लाइंट में नहीं) तो सुनिश्चित करें कि आप .svg फ़ाइल दिखाने की कोशिश नहीं कर रहे हैं। जीमेल इस तारीख के रूप में उनका समर्थन नहीं करता है, मैं इसे लिख रहा हूं और आपको .jpg या .png फ़ॉलबैक की आवश्यकता होगी।

+0

मुझे यह समस्या है लेकिन मैं .jpg छवियों का उपयोग कर रहा हूं, इसलिए वे Outlook हैं लेकिन जीमेल या Office 365 नहीं हैं। क्या आपको पता चलेगा क्यों? –

+0

.jpg सभी मेल-क्लाइंट द्वारा समर्थित होना चाहिए। क्या आपने यह देखने के लिए जांच की है कि ट्रस्ट समस्याओं के कारण आपका मेल क्लाइंट आपकी सामग्री छुपा नहीं रहा है? एसएमटीपी सामग्री स्क्रीनिंग में प्रतिबंधों को ट्रिगर कर सकता है। – Gemtastic