電子メール内に画像を埋め込む一般的な方法は 3 つあります (複雑になる順に): パブリック URL を使用する方法、データ URI を使用してsrc
属性内の画像データをインライン化する方法、および電子メールに添付された画像を使用する方法です。3 つのケースすべてで、通常の HTML 手法を使用して、OpenERP 電子メール テンプレートの HTML/Rich-Text 本文にそれらを含めることができます。たとえば、<img src="..."/>
タグや CSSbackground-image
プロパティを使用します。OpenERP の電子メール テンプレートですぐに使用できるのは、最初の 2 つの手法だけです。
1. ホストされたイメージの使用
画像の URL は、Web サイトの公開 URL またはインターネット上の任意の画像ホスティング サービスにすることができます: <img src="http://www.example.com/myimage.png">
. これは、画像が最初に自動的にimgur.comimg src
にアップロードされ、属性が imgur.com にアップロードされた画像の URL を参照するため、stackoverflow に画像を埋め込むときに起こることと非常によく似ています。
これは機能しますが、最近ではほとんどの電子メール クライアント (サンダーバード、gmail、Outlook など) がリモート画像をブロックします。メールが開封されました)。通常、これらのリモート画像を表示するには、受信者がバナーまたは警告をクリックする必要があります。
これは、OpenERP の電子メール テンプレートですぐに使用できる唯一の手法です。
2. データ URI を使用して画像データをインライン化する
タグのsrc
属性は、データ URI ( RFC 2397 ) スキームを使用して、画像のバイナリ ソースをインラインで含めることができます。画像タグは次のようになります。img
<img src="data:mime-type;encoding,<encoded_image_data>"/>
PNG 画像の場合、これは次のようになります。
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA..."/>
この手法は OpenERP 電子メール テンプレートに使用でき、電子メール クライアントによってブロックされるという欠点はありません。ただし、画像を手動で base64 [A]に変換する必要があります。これにより、テンプレートと送信メールのサイズも大幅に増加し、いくつかの制限があります (最大の互換性が必要な場合は最大 32KB など)。
[A] :変換を行う簡単な方法が必要な場合は、Google の「オンライン base64 ファイル エンコーダー」
3. 添付画像の使用 (現在 OpenERP ではサポートされていません)
RFC 2111は、メッセージの本文部分が URL を使用して他の本文部分を参照する方法を指定しcid:
ます。たとえばimg src
、電子メール内の属性は、添付ファイルの 1 つを参照できます。技術的には、img
タグは次のようになります。
<img src="cid:some_unique_content_id/>
ここsome_unique_content_id
で、画像を含むメッセージ パーツの Content-ID です。これは、最終的な (生の) 電子メールでは次のようになります。
------=_NextPart_WHATEVER_ID
Content-Type: image/jpeg;
name="image.jpg"
Content-Transfer-Encoding: base64
Content-ID: <some_unique_content_id>
Content-Disposition: inline;
filename="image.jpg"
/9j/4AAQ...continuation_of_the_base64_encoded_image
この手法には、電子メール クライアントによってブロックされるという欠点もありませんが、各添付ファイルに を具体的に割り当てる必要があるため、実装がより複雑になりますContent-ID
。また、ネットワーク上で送信される最終的な電子メールは、実際の画像。
これは現在 OpenERP では利用できませんが、実装するのはそれほど難しくありません。簡単な方法の 1 つは、電子メール レイヤーによって最終的なメールが作成されるときに、連続した Content-ID 識別子をすべての添付ファイル (例: ) に自動的attachment_1
に割り当てることです。添付ファイル。attachment_2
cid