2010-07-19 13 views
32

मैं iPad से भेजे गए ईमेल के लिए कुछ इनलाइन चित्र पैदा कर रहा हूँ। सभी डेस्कटॉप ईमेल क्लाइंट में बहुत अच्छा लग रहा है, लेकिन जीमेल बेस 64 छवि पसंद नहीं करता है और यह टेक्स्ट के रूप में दिखाई देता है।Base64 छवियों Gmail में

कोई भी किसी भी भाग्य बेस 64 और जीमेल के साथ छवियों को एम्बेड है? या आईपैड से छवियों के साथ एचटीएमएल ईमेल भेजने के लिए एक बेहतर समाधान के बारे में पता है?

+0

मुझे लगता है कि छवि का आकार समस्याएं पैदा कर रहा है। मेरी छवियां 1024x768 हैं। –

+0

क्या यह छोटी छवियों के साथ काम करता है? – ogur

+2

2016 तक ऐसा प्रतीत होता है कि वे अब काम नहीं करते हैं; इसके बजाय एसआरसी छीन लिया गया है और 'alt' टैग इसके स्थान पर उपयोग किया जाता है। – mix3d

उत्तर

11

मोइन ज़मान से लिंक परीक्षण के परिणाम देता है जो पुराने (2008 से) कर रहे हैं दिखा। मेरे पूर्ण परीक्षण के रूप में आज जीमेल दोनों तरीकों के लिए एम्बेडेड छवियों को प्रदर्शित करने में समर्थन करता है।

उपयोग <img src="...">

<html><body><img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA9QAAADmCAIAAAC77FroAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO..."</body></html> 

उपयोग बेस 64 के भीतर बेस 64 एन्कोडिंग छवि इनलाइन लगाव

Message-ID: <[email protected]> 
Accept-Language: en-US 
Content-Language: en-US 
X-MS-Has-Attach: yes 
X-MS-TNEF-Correlator: 
x-originating-ip: [xxx.xxx.xxx.xxx] 

Content-Type: multipart/related; 
    boundary="_038_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_"; 
    type="multipart/alternative" 
MIME-Version: 1.0 
Return-Path: [email protected] 
X-OriginatorOrg: example.com 

--_038_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_ 
Content-Type: multipart/alternative; 
    boundary="_000_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_" 

...skipping Content-Type: text/plain which would be here for this example... 

--_000_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_ 
Content-Type: text/html; charset="iso-8859-1" 
Content-Transfer-Encoding: quoted-printable 

<html><body><img border=3D"0" width=3D"980" height=3D"230" id=3D"Picture_x0020_1" src==3D"cid:[email protected]"></body></html> 

--_000_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_-- 

--_038_BE0243A40B89D84DB342702BC5FD6D313EA3BE1BBYMAIL_ 
Content-Type: image/png; name="image001.png" 
Content-Description: image001.png 
Content-Disposition: inline; filename="image001.png"; size=32756; 
    creation-date="Mon, 08 Oct 2012 15:27:07 GMT"; 
    modification-date="Mon, 08 Oct 2012 15:27:07 GMT"; 
Content-ID: <[email protected]> 
Content-Transfer-Encoding: base64 

iVBORw0KGgoAAAANSUhEUgAAA9QAAADmCAIAAAC77FroAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAO 
xAAADsQBlSsOGwAAf5lJREFUeF7tvQlgVdW18L+ZR20mpsSLCYlBQKwgwRCMr9TAqzg0CAl98Y9a 
ikBfHxL1A/r0tUr77Feg1mDav4LUijxTk8hLRIstQ2mJhEiAWAEpNCGRa8KUSQXCzLf2cOZz7j33 
5s5Zx6j3nruHtX97n33WWWfttbtdv36d4IEEkAASQAJIAAkgASSABJCA/wl0938VWAMSQAJIAAkg 
ASSABJAAEkAClAAq3zgOkAASQAJIAAkgASSABJBAgAig8h0g0FgNEkACSAAJIAEkgASQABJA5RvH 
... 

अपने स्वयं के परीक्षण करने के लिए के रूप में एन्कोड छवि, आप ईमेल निम्न में से एक का उपयोग कर इनलाइन एम्बेडेड छवि के साथ भेज सकते हैं तकनीक

  • द्वारा कोड का उपयोग करना
  • सक्षम करें और Outlook 2010

तरह ईमेल क्लाइंट में Google Lab for Inserting Images

  • पेस्ट छवि का उपयोग अपने जीमेल खाते में ऊपर से एक का उपयोग एक ईमेल भेजें, तो (किसी भी ब्राउज़र जीमेल वेब क्लाइंट में ईमेल खोलने कि काम करता है) और मूल विकल्प दिखाएँ चुनने के लिए उत्तर बटन के बगल में डाउन-एरो का उपयोग करें। यह आपको दिखाएगा कि यह कैसे प्राप्त किया जाता है।

    मुझे लगता है कि सबसे अच्छा अभ्यास लगाव विधि के रूप में एम्बेडेड छवि का उपयोग करने के लिए है।

    जीमेल वेब क्लाइंट के साथ अपने परीक्षण में, अगर मैंने विभिन्न आकारों के एक ईमेल में 30 छवियां भेजी हैं, तो कुछ छवि कंटेनर को सफलतापूर्वक प्रदर्शित नहीं करेंगे बल्कि छवि नहीं। यदि ऐसा होता है, तो पृष्ठ को पुनः लोड करने का प्रयास करें।

    मेरे परीक्षण में (विंडोज 7) ...

    • क्रोम (नवीनतम) सफलतापूर्वक लोड करने के लिए/सभी 30 चित्र दिखाने पुनः लोड की एक जोड़ी की जरूरत
    • ओपेरा (नवीनतम) सफलतापूर्वक सभी 30 छवियों पुनः लोड
    • फ़ायरफ़ॉक्स की संख्या की परवाह किए बगैर नहीं होता (नवीनतम) लगातार इस मुद्दे के बिना सभी 30 छवियों से पता चला है
    • इंटरनेट एक्सप्लोरर 9 (नवीनतम) लगातार इस मुद्दे के बिना सभी 30 छवियों से पता चला है
    • सफारी (नवीनतम) लगातार सभी 30 छवियों मुद्दे के बिना दिखाया
  • +2

    मैंने बड़ी संख्या में छवियों के साथ परीक्षण किया, लेकिन मुझे लगता है कि अगर बड़ी आकार की छवियों का उपयोग किया जाता है, तो इससे उन्हें समय में लोड/शो नहीं हो सकता है। जीमेल वेब क्लाइंट थोड़ा संवेदनशील है कि उन एम्बेडेड छवियों को लोड/शो करने में कितना समय लगेगा और यह कुछ हद तक ब्राउज़र निर्भर है। आपकी मशीन/नेटवर्क की गति भी कारक योगदान दे सकती है। लेकिन आधार समर्थन के संदर्भ में, जीमेल एम्बेडेड छवियों का समर्थन करता है। यह उपयोगकर्ता अनुभव को नुकसान पहुंचाने से कई/बड़ी एम्बेडेड छवियों के खिलाफ Google से कुछ जानबूझकर टाइम-टू-लोड सुरक्षा हो सकता है। – cusman

    +5

    अब इसका समर्थन नहीं कर रहा है (जीमेल) .. यह सिर्फ स्रोत विशेषताओं को हटा देता है और इसके बजाय alt जोड़ता है .. –

    +20

    आज परीक्षण, जीमेल * डेटा: 'यूआरएल का उपयोग कर छवियों का समर्थन नहीं करता है। यह इसके बजाय 'alt' टेक्स्ट का उपयोग करता है। – jameshfisher

    2

    सुनिश्चित करें कि आप सामग्री प्रकार सेट करें: बहुखण्डीय/मिश्रित; , सीमा और सामग्री-स्थानांतरण-एन्कोडिंग: बेस 64

    +6

    क्या आप एक उदाहरण दे सकते हैं? –

    +0

    मुझे लगता है कि आप ईमेल अटैचमेंट्स के बारे में बात कर रहे हैं। –

    5

    किसी भी आधिकारिक दस्तावेज़ीकरण से प्रतीत नहीं होता है लेकिन जीमेल निश्चित रूप से इनलाइन, इनलाइन या बेस 64 में अनुलग्नक के रूप में समर्थन नहीं करता है।

    यहाँ कुछ है कि अभियान की निगरानी का परीक्षण करने की कोशिश की है:
    Embedding images in email
    Embedding images revisited

    -9
    MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init]; 
    
    [picker addAttachmentData:UIImageJPEGRepresentation(_tempImage,1) mimeType:mimeType fileName:filename]; 
    
    [picker setMessageBody:emailBody isHTML:YES]; 
    

    तो isHTML है YES, addAttachmentData base64 स्ट्रिंग के लिए स्वत: परिवर्तन, ईमेल html में आप img देख सकें।

    तो isHTML नहीं है, सीधे addAttachmentData लगाव है।

    +0

    समस्या प्राप्तकर्ता के साथ निहित है, न कि भेजने की विधि –

    -1

    इस साथी का प्रयास करें .. मुझे यकीन है कि यह एक अनुलग्नक

        $output_hex_string_img = $image; 
            $output_bin_string_img = base64_decode($output_hex_string_img); 
            //echo base64_encode($output_bin_string_img); 
            $XXX = base64_encode($output_bin_string_img); 
    
            $from_name = "Senders Name"; 
            $from_mail = "[email protected]"; 
            $replyto = "[email protected]"; 
            $subject = "Device Missing Notification"; 
           $message = "Device Missing notification has been activated on your device. Please change this setting when you find your smartphone back. Best Of Luck!!\r\r "; 
    
    
    
            $mailto = '[email protected]'; 
    
    
    
             $file = $XXX; 
             $filename = "Print_shot.png"; 
             $uid = md5(uniqid(time())); 
             $name = basename($file); 
             $header = "From: ".$from_name." <".$from_mail.">\r\n"; 
             $header .= "Reply-To: ".$replyto."\r\n"; 
             $header .= "MIME-Version: 1.0\r\n"; 
             $header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n"; 
             $header .= "This is a multi-part message in MIME format.\r\n"; 
             $header .= "--".$uid."\r\n"; 
             $header .= "Content-type:text/html; charset=iso-8859-1\r\n"; 
             $header .= "Content-Transfer-Encoding: 7bit\r\n\r\n"; 
             $header .= $message."\r\n\r\n"; 
             $header .= "--".$uid."\r\n"; 
             $header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n"; // use different content types here 
             $header .= "Content-Transfer-Encoding: base64\r\n"; 
             $header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n"; 
             $header .= $file."\r\n\r\n"; 
             $header .= "--".$uid."--"; 
             mail($mailto, $subject, "", $header); 
    

    रूप में एक छवि में शामिल करने के लिए काम करेंगे हूँ लेकिन आप हेडर में विभिन्न सामग्री प्रकार का उपयोग करके हेडर के अंदर सब कुछ शामिल करने के लिए की है। और जो भी शरीर में दिखाई देता है जो मेल फ़ंक्शन में तीसरा पैरामीटर हो सकता है उसे रिक्त स्ट्रिंग के रूप में पास किया जाएगा ..

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