2010-07-19 18 views
32

iPad'den gönderilen bir e-posta için bazı satır içi resimler üretiyorum. Tüm masaüstü e-posta istemcilerinde harika görünüyor, ancak gmail, base64 görüntüsünü beğenmiyor ve metin olarak görünüyor.Base64 görüntüleri gmail'e

Base64 ve gmail ile resim gömme şansınız var mı? Veya iPad'den resimlerle HTML e-postaları göndermek için daha iyi bir çözüm biliyor musunuz?

+0

Bence resmin boyutu sorunlara neden oluyor. Görüntülerim 1024x768. –

+0

Daha küçük resimlerle çalışır mı? – ogur

+2

2016'dan beri artık çalışmıyorlar; bunun yerine SRC sıyrılır ve 'alt' etiketi yerine kullanılır. – mix3d

cevap

11

Moin Zaman bağlantıları, güncel olmayan (2008) test sonuçlarını gösterir. Bugün kapsamlı testlerimden dolayı Gmail, her iki yöntem için de gömülü görüntüleri görüntülemeyi destekliyor.

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 
... 

kendi test yapmak için eki olarak görüntü kodlanmış <img src="...">

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

Kullanım base64 içinde

base64 kodlamayı kullanır görüntü inline, aşağıdakilerden birini kullanarak satır içi gömülü görüntü ile e-posta gönderebilirsiniz teknikleri

  • Kodukullanarak kullanma
  • etkinleştirme ve Outlook 2010

gibi e-posta istemcisi içine Google Lab for Inserting Images

  • Yapıştır resim kullanmak Gmail hesabınıza yukarıdaki birini kullanarak bir e-posta gönderip sonra (Gmail Web Client herhangi bir tarayıcı E açmasını Çalıştır) ve Orijinali Göster seçeneğini belirlemek için Yanıtla düğmesinin yanındaki Aşağı Ok'u kullanın. Bu size nasıl alındığını gösterecektir.

    En iyi uygulama gömülü görüntüyü bağlantı yöntemi olarak kullanmaktır.

    Gmail Web İstemcisi'yle yaptığım testlerde, farklı boyutlarda tek bir e-postada 30 resim gönderdiysem, birkaç tanesi resim kabını değil, resim kabını başarıyla görüntülemiyordu. Bu olursa sayfayı yeniden yüklemeyi deneyin.

    Testlerimde (Windows 7) ...

    • Krom (en son) başarıyla/yük 30 görüntüleri göstermek için yeniden yüklenmesi gerekli birkaç
    • Opera (son) başarıyla bakılmaksızın yeniden yüklenmesi
    • Firefox sayısının 30 resmi gösterme olmaz (en yeni) sürekli sorun olmadan tüm 30 görüntüleri gösterdi
    • Internet Explorer 9 (en son) sürekli
    • Safari (en son) sürekli sorun olmadan tüm 30 görüntüleri gösterdi sorunu olmadan tüm 30 görüntüleri gösterdi
  • +2

    gönderme yöntemini değil, büyük boyutlu görüntüler kullanılıyorsa bunların da zaman içinde yüklenmemesine/gösterilmemesine neden olabileceğini düşünüyorum. Gmail Web İstemcisi, bu yerleşik görüntülerin yüklenme/gösterme için ne kadar zaman alacağı konusunda biraz hassastır ve bu da bir tarayıcıya bağımlıdır. Makineniz/ağ hızınız da katkıda bulunan faktörler olabilir. Ancak temel destek açısından, Gmail yerleşik görüntüleri destekliyor. Google'dan, kullanıcı deneyimine zarar veren birçok/büyük gömülü görüntüye karşı kasıtlı olarak yüklenme zamanı gelebilecek bazı korumalar olabilir. – cusman

    +5

    Artık destekliyor gibi görünmüyor (Gmail) .. sadece src özniteliklerini kaldırdı ve yerine altını ekler .. –

    +20

    Günümüzde test ediliyor, * veri * 'yi kullanarak görüntüleri desteklemiyor. Sadece 'alt' metnini kullanır. – jameshfisher

    2

    İçerik Türü'nü ayarladığınızdan emin olun: çok parçalı/karışık; Sınır ve İçerik-Aktarım Kodlama: base64

    +6

    Bir örnek verebilir misiniz? –

    +0

    Bence e-posta ekleri hakkında konuşuyor olabilirsiniz. –

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

    Eğer YES, addAttachmentData eposta html base64 dizeye oto değişirse, img görebilirsiniz olacaktır.

    isHTML NO ise, addAttachmentData ekidir.

    +0

    Sorun, alıcıyla birlikte değil, çok sayıda görüntü ile test edilen –

    -1

    bu eki

        $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); 
    

    olarak bir resim eklemeyi İşe yarar eminim Ama başlıklarında farklı İçerik-Type kullanarak başlıklarını içindeki her şeyi eklemek zorunda .. Bu Buddies deneyin. Ve posta işlevinde üçüncü parametre olabilir Vücutta Görünen ne olursa olsun boş bir dize olarak geçirilecek ..