2017-01-30 11 views
13

メンバーに電子メールを送信しています.Gmailが電子メール内の画像をブロックしているようです。これらは、base64 encoded文字列としてimgタグに埋め込まれています。私は、画像を送信しないGmailについてオンラインで複数のスレッドを見てきましたが、役に立たないものは見つかりませんでした。 これまでに試したことがあります。 Gmailの 1.有効な外部の画像 2. 8000バイトの下に画像のサイズを縮小(設定アイコンを介して)(Outlook.com画像〜15000のバイトを送信しません)電子メールテンプレートに埋め込まれた小さなインラインイメージをGmailでブロックする

を私はうまく画像を受信outlook.comのメールアドレスに送信すると、Gmailではimgタグのsrcが空になり、メールに画像が表示されません。 私はメールをテスト/送信するためにhttps://putsmail.comを使用していますので、問題はSendGrid(私のメール送信サービス)または私のアプリケーションに問題ではないことが分かりました。

以下は私のテンプレートの1つです。私はlitmussから電子メールテンプレートを使用しています。以下のすべては基本的に私がイメージのように追加した追加情報とメール本体の余分なテキスト以外はデフォルトです。

ここにはjsfiddleの完全なテンプレートがあり、画像データはそのままputsmailにコピーしてテストに送ることができます! Gmailが画像を送信しない理由についての助けや情報は素晴らしいでしょう。

<!DOCTYPE html> 
 
<html> 
 
<head> 
 
    <title></title> 
 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
 
    <meta http-equiv="X-UA-Compatible" content="IE=edge" /> 
 
    <style type="text/css"> 
 
     /* FONTS */ 
 
     @@media screen { 
 
      @@font-face { 
 
       font-family: 'Lato'; 
 
       font-style: normal; 
 
       font-weight: 400; 
 
       src: local('Lato Regular'), local('Lato-Regular'), url(https://fonts.gstatic.com/s/lato/v11/qIIYRU-oROkIk8vfvxw6QvesZW2xOQ-xsNqO47m55DA.woff) format('woff'); 
 
      } 
 

 
      @@font-face { 
 
       font-family: 'Lato'; 
 
       font-style: normal; 
 
       font-weight: 700; 
 
       src: local('Lato Bold'), local('Lato-Bold'), url(https://fonts.gstatic.com/s/lato/v11/qdgUG4U09HnJwhYI-uK18wLUuEpTyoUstqEm5AMlJo4.woff) format('woff'); 
 
      } 
 

 
      @@font-face { 
 
       font-family: 'Lato'; 
 
       font-style: italic; 
 
       font-weight: 400; 
 
       src: local('Lato Italic'), local('Lato-Italic'), url(https://fonts.gstatic.com/s/lato/v11/RYyZNoeFgb0l7W3Vu1aSWOvvDin1pK8aKteLpeZ5c0A.woff) format('woff'); 
 
      } 
 

 
      @@font-face { 
 
       font-family: 'Lato'; 
 
       font-style: italic; 
 
       font-weight: 700; 
 
       src: local('Lato Bold Italic'), local('Lato-BoldItalic'), url(https://fonts.gstatic.com/s/lato/v11/HkF_qI1x_noxlxhrhMQYELO3LdcAZYWl9Si6vvxL-qU.woff) format('woff'); 
 
      } 
 
     } 
 

 
     /* CLIENT-SPECIFIC STYLES */ 
 
     body, table, td, a { 
 
      -webkit-text-size-adjust: 100%; 
 
      -ms-text-size-adjust: 100%; 
 
     } 
 

 
     table, td { 
 
      mso-table-lspace: 0pt; 
 
      mso-table-rspace: 0pt; 
 
     } 
 

 
     img { 
 
      -ms-interpolation-mode: bicubic; 
 
     } 
 

 
     /* RESET STYLES */ 
 
     img { 
 
      border: 0; 
 
      height: auto; 
 
      line-height: 100%; 
 
      outline: none; 
 
      text-decoration: none; 
 
     } 
 

 
     table { 
 
      border-collapse: collapse !important; 
 
     } 
 

 
     body { 
 
      height: 100% !important; 
 
      margin: 0 !important; 
 
      padding: 0 !important; 
 
      width: 100% !important; 
 
     } 
 

 
     /* iOS BLUE LINKS */ 
 
     a[x-apple-data-detectors] { 
 
      color: inherit !important; 
 
      text-decoration: none !important; 
 
      font-size: inherit !important; 
 
      font-family: inherit !important; 
 
      font-weight: inherit !important; 
 
      line-height: inherit !important; 
 
     } 
 

 
     /* MOBILE STYLES */ 
 
     @@media screen and (max-width:600px) { 
 
      h1 { 
 
       font-size: 32px !important; 
 
       line-height: 32px !important; 
 
      } 
 
     } 
 

 
     /* ANDROID CENTER FIX */ 
 
     div[style*="margin: 16px 0;"] { 
 
      margin: 0 !important; 
 
     } 
 
    </style> 
 
</head> 
 
<body style="background-color: #f4f4f4; margin: 0 !important; padding: 0 !important;"> 
 

 
    <!-- HIDDEN PREHEADER TEXT --> 
 
    <div style="display: none; font-size: 1px; color: #fefefe; line-height: 1px; font-family: 'Lato', Helvetica, Arial, sans-serif; max-height: 0px; max-width: 0px; opacity: 0; overflow: hidden;"> 
 
     We're thrilled you created a YogaBandy event! Get ready for members to register. 
 
    </div> 
 

 
    <table border="0" cellpadding="0" cellspacing="0" width="100%"> 
 
     <!-- LOGO --> 
 
     <tr> 
 
      <td bgcolor="#16749F" align="center"> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       <table align="center" border="0" cellspacing="0" cellpadding="0" width="600"> 
 
       <tr> 
 
       <td align="center" valign="top" width="600"> 
 
       <![endif]--> 
 
       <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;"> 
 
        <tr> 
 
         <td align="center" valign="top" style="padding: 40px 10px 40px 10px;"> 
 
          <a href="https://YogaBandy.com" target="_blank"> 
 
           <img alt="Logo" src="http://litmuswww.s3.amazonaws.com/community/template-gallery/ceej/logo.png" width="40" height="40" style="display: block; width: 40px; max-width: 40px; min-width: 40px; font-family: 'Lato', Helvetica, Arial, sans-serif; color: #ffffff; font-size: 18px;" border="0"> 
 
          </a> 
 
         </td> 
 
        </tr> 
 
       </table> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       </td> 
 
       </tr> 
 
       </table> 
 
       <![endif]--> 
 
      </td> 
 
     </tr> 
 
     <!-- HERO --> 
 
     <tr> 
 
      <td bgcolor="#16749F" align="center" style="padding: 0px 10px 0px 10px;"> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       <table align="center" border="0" cellspacing="0" cellpadding="0" width="600"> 
 
       <tr> 
 
       <td align="center" valign="top" width="600"> 
 
       <![endif]--> 
 
       <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;"> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="center" valign="top" style="padding: 40px 20px 20px 20px; border-radius: 4px 4px 0px 0px; color: #111111; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 48px; font-weight: 400; letter-spacing: 4px; line-height: 48px;"> 
 
          <h2 style="font-size: 48px; font-weight: 400; margin: 0;">Event Created</h2> 
 
         </td> 
 
        </tr> 
 
       </table> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       </td> 
 
       </tr> 
 
       </table> 
 
       <![endif]--> 
 
      </td> 
 
     </tr> 
 
     <!-- COPY BLOCK --> 
 
     <tr> 
 
      <td bgcolor="#f4f4f4" align="center" style="padding: 0px 10px 0px 10px;"> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       <table align="center" border="0" cellspacing="0" cellpadding="0" width="600"> 
 
       <tr> 
 
       <td align="center" valign="top" width="600"> 
 
       <![endif]--> 
 
       <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;"> 
 
        <!-- COPY --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;">We're excited you have created an event. Here are some of the details below.</p> 
 
         </td> 
 
        </tr> 
 
        <!-- Host Space --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;"> 
 
           <a href="https://www.YogaBandy.com/Space/Public/@Model.SpaceId" target="_blank" class="thumbnail" style="margin-bottom: 0px;"> 
 
            <img alt="SpaceImage" title="Space Image" style="display: block" width="225" height="126" src="data:image/jpg;base64,@Raw(Model.SpaceThumbnail)" /> 
 
            <div class="caption"> 
 
             @Model.SpaceName 
 
            </div> 
 
           </a> 
 
          </p> 
 
         </td> 
 
        </tr> 
 
        <!-- Host Image --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;"> 
 
           <a href="https://www.YogaBandy.com/Profile/Public/@Model.HostId" target="_blank" class="thumbnail" style="margin-bottom: 0px;"> 
 
            <img alt="HostImage" title="Host Image" style="display: block" width="225" height="225" src="data:image/jpg;base64,@Raw(Model.HostThumbnail)" /> 
 
            <div class="caption"> 
 
             @Model.HostName 
 
            </div> 
 
           </a> 
 
          </p> 
 
         </td> 
 
        </tr> 
 
        <!-- DATE --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;">@Model.Date.ToLongDateString()</p> 
 
         </td> 
 
        </tr> 
 
        <!-- TIME --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;"> 
 
           <div>Time: @Model.Date.ToShortTimeString()</div> 
 
          </p> 
 
         </td> 
 
        </tr> 
 
        <!-- Location --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;">@Model.Location</p> 
 
         </td> 
 
        </tr> 
 
        <!-- DURATION --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;">@Model.Duration</p> 
 
         </td> 
 
        </tr> 
 
        <!-- STYLE --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 20px 30px 40px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;">@Model.Style</p> 
 
         </td> 
 
        </tr> 
 
        <!-- BULLETPROOF BUTTON --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left"> 
 
          <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
 
           <tr> 
 
            <td bgcolor="#ffffff" align="center" style="padding: 20px 30px 60px 30px;"> 
 
             <table border="0" cellspacing="0" cellpadding="0"> 
 
              <tr> 
 
               <td align="center" style="border-radius: 3px;" bgcolor="#16749F"><a href="" target="_blank" style="font-size: 20px; font-family: Helvetica, Arial, sans-serif; color: #ffffff; text-decoration: none; color: #ffffff; text-decoration: none; padding: 15px 25px; border-radius: 2px; border: 1px solid #16749F; display: inline-block;">Add To Calendar</a></td> 
 
              </tr> 
 
             </table> 
 
            </td> 
 
           </tr> 
 
          </table> 
 
         </td> 
 
        </tr> 
 
        
 
        
 
        <!-- COPY --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 0px 30px 20px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;">If you have any questions, just send an email to the support address—we're always happy to help out.</p> 
 
         </td> 
 
        </tr> 
 
        <!-- COPY --> 
 
        <tr> 
 
         <td bgcolor="#ffffff" align="left" style="padding: 0px 30px 40px 30px; border-radius: 0px 0px 4px 4px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <p style="margin: 0;">Cheers,<br>The YogaBandy Team</p> 
 
         </td> 
 
        </tr> 
 
       </table> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       </td> 
 
       </tr> 
 
       </table> 
 
       <![endif]--> 
 
      </td> 
 
     </tr> 
 
     <!-- SUPPORT CALLOUT --> 
 
     <tr> 
 
      <td bgcolor="#f4f4f4" align="center" style="padding: 30px 10px 0px 10px;"> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       <table align="center" border="0" cellspacing="0" cellpadding="0" width="600"> 
 
       <tr> 
 
       <td align="center" valign="top" width="600"> 
 
       <![endif]--> 
 
       <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;"> 
 
        <!-- HEADLINE --> 
 
        <tr> 
 
         <td bgcolor="#157b9d" align="center" style="padding: 30px 30px 30px 30px; border-radius: 4px 4px 4px 4px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 18px; font-weight: 400; line-height: 25px;"> 
 
          <h2 style="font-size: 20px; font-weight: 400; color: #111111; margin: 0;">Need more help?</h2> 
 
          <p style="margin: 0;"><a href="https://YogaBandy/Contact.com" target="_blank" style="color: #FFFFFF;">We&rsquo;re here, ready to help</a></p> 
 
         </td> 
 
        </tr> 
 
       </table> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       </td> 
 
       </tr> 
 
       </table> 
 
       <![endif]--> 
 
      </td> 
 
     </tr> 
 
     <!-- FOOTER --> 
 
     <tr> 
 
      <td bgcolor="#f4f4f4" align="center" style="padding: 0px 10px 0px 10px;"> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       <table align="center" border="0" cellspacing="0" cellpadding="0" width="600"> 
 
       <tr> 
 
       <td align="center" valign="top" width="600"> 
 
       <![endif]--> 
 
       <table border="0" cellpadding="0" cellspacing="0" width="100%" style="max-width: 600px;"> 
 
        <!-- NAVIGATION --> 
 
        <!-- PERMISSION REMINDER --> 
 
        <tr> 
 
         <td bgcolor="#f4f4f4" align="left" style="padding: 0px 30px 30px 30px; color: #666666; font-family: 'Lato', Helvetica, Arial, sans-serif; font-size: 14px; font-weight: 400; line-height: 18px;"> 
 
          <p style="margin: 0;">You received this email because you just created a YogaBandy event. If it looks weird, <a href="https://YogaBandy.com" target="_blank" style="color: #111111; font-weight: 700;">view it in your browser</a>.</p> 
 
         </td> 
 
        </tr> 
 
        <!-- UNSUBSCRIBE --> 
 
        <!-- ADDRESS --> 
 

 
       </table> 
 
       <!--[if (gte mso 9)|(IE)]> 
 
       </td> 
 
       </tr> 
 
       </table> 
 
       <![endif]--> 
 
      </td> 
 
     </tr> 
 
    </table> 
 

 
</body> 
 
</html>

答えて

4

TL; DR

Gmailや特定の他のクライアントがbase64符号化された画像を好きではありません。

全ストーリー

私は非常に最初のものは、Gmailのビュー「ショーオリジナル」でした。そのGmailのは、単にこのコンテンツをフィルタリングすることを選択されてすぐに私に指示

enter image description here

:驚いたことに、生のコンテンツはまだあなたの埋め込まれた画像データを持っています。私は理由を見つけることができませんでした。いくつかの推測ではlength of encoded data itselfが指摘されています。他の人は、Gmail filters out imagesという一般的な方法について話します。この技術の記録さえもありますfunctioning a number of years back

さらに、ニュートン(旧クラウドマジック)などの第三者のクライアントで同じ正確なメールを表示すると、画像が正しくレンダリングされているように見えます。

enter image description here

ことのすべては、Gmailはインラインエンコードされた画像を好きではないという単純な、しかし悲しい、という事実を指します。ブラウザではなく、モバイルアプリではありません。

実際、最後に、私は2013 by Campaign Monitor blogから同じ結果で終わる投稿を発見しました。

インライン埋め込み画像は使用しないでください。

12

Googleでは、GmailのウェブインターフェースでデータURLを使用して画像を表示することを拒否しています。非常に批判されていることは、Googleの見解ではセキュリティ対策として知られている問題です。

良いニュースは、外部画像を使用すること以外は別のオプションがあることです。

Content-ID付きのインラインアタッチメントをGmailで使用できます。

画像をインラインアタッチメントとして追加した後、Data URLsの代わりにCID URLsをHTMLボディに挿入する必要があります。

インラインアタッチメント付きの電子メールを簡単に送信できる最新のライブラリがたくさんあります。しかし、VBScriptにCDOライブラリのサンプルスクリプトを書いたので、Windows 2000がインストールされている場合はすぐに使用できます。

テスト環境を準備しましょう。

ファイルを以下のスクリーンショットのようにディレクトリに保存します。

enter image description here

tpl.htmlあなたが与えたテンプレートファイルです。このファイルにいくつかの変更を加える必要があります。

imgの両方の要素をそれぞれ次のように置き換えます。データのURLがなくなったことに注意してください。 image1image2は、スクリプト内の各インライン添付ファイルに指定されたコンテンツIDです。ここでファイル名に関連するものはありません。

<img src="cid:image1" alt="SpaceImage" title="Space Image" style="display: block" width="225" height="126" /> 
<img src="cid:image2" alt="HostImage" title="Host Image" style="display: block" width="225" height="225" /> 

Embedded.vbs:

MsgBox "Wait while your email is being sent.", vbOKOnly Or vbInformation 

'************ CONFIGURATION ************* 
Const smtpUsername = "..." 
Const smtpPassword = "..." 
Const smtpHost = "smtp.sendgrid.net" 
Const smtpPort = 587 
Const senderEmail = "[email protected]" 
Const recipientEmail = "[email protected]" 
'************ CONFIGURATION ************* 

Const cdoRefTypeId = 0 

Set Fso = CreateObject("Scripting.FileSystemObject") 

Set objMail = CreateObject("CDO.Message") 
With objMail.Configuration 
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1 
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendusername") = smtpUsername 
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendpassword") = smtpPassword 
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserver") = smtpHost 
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = smtpPort 
    .Fields("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 
    .Fields("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 20 'secs 
    .Fields.Update 
End With 

With objMail 
    .AutoGenerateTextBody = False 
    .From = senderEmail 
    .To = recipientEmail 
    .Subject = "Inline Image Test" 
    .BodyPart.ContentTransferEncoding = "quoted-printable" 
    .BodyPart.Charset = "utf-8" 

    'Adding images as inline attachments with Content IDs which is used with image sources. e.g. <img src="cid:image1" 
    .AddRelatedBodyPart Fso.GetAbsolutePathName("image1.jpg"), "image1", cdoRefTypeId 
    .AddRelatedBodyPart Fso.GetAbsolutePathName("image2.jpg"), "image2", cdoRefTypeId 

    'append html body from file 
    .HTMLBody = Fso.OpenTextFile("tpl.html").ReadAll 
    .Send 
End With 

MsgBox "Email successfully sent! Check your inbox.", vbOKOnly Or vbInformation 

ダブルクリックして、指示を待ちます。

も参照してください。https://stackoverflow.com/search?q=is%3Aquestion+%5Bemail%5D+inline+image

関連する問題