HTMLメールに画像を埋め込む 質問する

HTMLメールに画像を埋め込む 質問する

私は、埋め込まれた GIF 画像を含むマルチパート/関連 HTML メールを送信しようとしています。このメールは、Oracle PL/SQL を使用して生成されます。私の試みは失敗し、画像は赤い X として表示されます (Outlook 2007 および Yahoo メール)

私はしばらく HTML メールを送信していますが、現在、メールに複数の GIF 画像を使用する必要が出ています。これらの画像を Web サーバーの 1 つに保存してリンクするだけで済みますが、多くのユーザーのメール クライアントでは自動的には表示されず、設定を変更するか、メールごとに手動でダウンロードする必要があります。

そこで、画像を埋め込むことを考えます。質問は次のとおりです。

  1. ここで何が間違っているのでしょうか?
  2. 埋め込みアプローチは正しいのでしょうか?
  3. もっと多くの画像を使用する必要がある場合、他のオプションはありますか? 添付ファイルは機能しません。画像は通常、メッセージのコンテキストから外れると意味をなさないロゴやアイコンであるためです。また、電子メールの一部の要素はオンライン システムへのリンクであるため、静的な PDF を生成して添付することはできません (少なくとも私の知る限りでは)。

スニペット:

MIME-Version: 1.0
To: [email protected]
BCC: [email protected]
From: [email protected]
Subject: Test
Reply-To: [email protected]
Content-Type: multipart/related; boundary="a1b2c3d4e3f2g1"

--a1b2c3d4e3f2g1

content-type: text/html;

    <html>
    <head><title>My title</title></head>
    <body>
    <div style="font-size:11pt;font-family:Calibri;">
    <p><IMG SRC="cid:my_logo" alt="Logo"></p>

... more html here ...

</div></body></html> 

--a1b2c3d4e3f2g1

Content-Type: image/gif;
Content-ID:<my_logo>
Content-Transfer-Encoding: base64
Content-Disposition: inline

[base64 image data here]

--a1b2c3d4e3f2g1--

どうもありがとう。

ところで: はい、画像を HTML 自体に埋め込むことができ (ヘッダー データの作成に使用したのと同じアルゴリズムを使用)、Firefox/IE で画像を確認できるため、base64 データが正しいことを確認しました。

また、これはスパム用ではなく、メールは毎日メールを期待している特定のクライアントに送信されるものであることにも注意してください。コンテンツはデータに基づくものであり、広告ではありません。

ベストアンサー1

直接挿入してみてください。こうすることで、電子メール内のさまざまな場所に複数の画像を挿入できます。

<img src="data:image/jpg;base64,{{base64-data-string here}}" />

この投稿を他の人にとって役立つものにするために、次の点に注意してください。base64 データ文字列がない場合は、次の場所で簡単に作成できます。http://www.motobit.com/util/base64-decoder-encoder.asp画像ファイルから。

電子メールのソース コードは次のようになりますが、その境界が何のためにあるのかは実際にはわかりません。

 To: [email protected]
 Subject: ...
 Content-Type: multipart/related;
 boundary="------------090303020209010600070908"

This is a multi-part message in MIME format.
--------------090303020209010600070908
Content-Type: text/html; charset=ISO-8859-15
Content-Transfer-Encoding: 7bit

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-15">
  </head>
  <body bgcolor="#ffffff" text="#000000">
    <img src="cid:part1.06090408.01060107" alt="">
  </body>
</html>

--------------090303020209010600070908
Content-Type: image/png;
 name="moz-screenshot.png"
Content-Transfer-Encoding: base64
Content-ID: <part1.06090408.01060107>
Content-Disposition: inline;
 filename="moz-screenshot.png"

[base64 image data here]

--------------090303020209010600070908--

//編集: ああ、Thunderbird でメールを書くために私の投稿の最初のコード スニペットを挿入すると、Thunderbird は HTML コードを自動的に変更して、私の投稿の 2 番目のコードとほぼ同じようにすることに気づきました。

おすすめ記事