送信メールに画像を埋め込むことができるシステムを作成しました。
システムが作成する元のメッセージは次のとおりです。この例には、画像の添付ファイルと埋め込み画像が含まれています。
Mime-Version: 1.0
From: ...
To: ...
CC:
Subject: test
x-sender: ...
x-mailer: ...
Content-Type: multipart/mixed; boundary="-------------...A128803765634794"
---------------...A128803765634794
Content-Type: multipart/related; boundary="-------------...B128803765634796"
---------------...B128803765634796
Content-Type: text/html; charset="UTF-8"
<p style="margin: 0; padding: 0"><img src="cid:083.gif" alt="" /></p>
---------------...B128803765634796
Content-type: image/gif; name="083.gif"
Content-ID: <083.gif>
X-Attachment-Id: 083.gif
Content-Disposition: Embedded; filename="083.gif"
Content-transfer-encoding: base64
............................................................................
............................................................................
......................................................
---------------PineappleCodeB128803765634796--
---------------PineappleCodeA128803765634794
Content-type: image/gif; name="waiting.gif"
Content-Disposition: Attachment; filename="waiting.gif"
Content-transfer-encoding: base64
............................................................................
............................................................................
......................................................
---------------PineappleCodeA128803765634794--
追加する必要がある別のヘッダーまたは従うべきルールはありますか?
私は1つのことに気づいた ...私はそれが私の問題の一部であり、Gmailの一部であると推測します。とにかく、私はそれをやめさせたい
メールがGmailに届くと、
画像は表示されません。
以下の画像を表示-常に次の画像を表示します...
埋め込まれた画像は、画像の添付ファイルとして表示されます(他の画像の添付ファイルと同様)
[下の画像を表示]をクリックすると、画像がメールの本文に表示されますが、[添付ファイル]セクションからは削除されません。
受信ボックスに戻ってメールに戻ると、問題ありません。
なぜそうなるのかわかりません。 (外部URLからの)リンクされた画像ではなく、GmailからGmailに埋め込まれた画像を送信する場合は発生しません。それは私が間違ったことをしているかもしれないと私に思わせるものであり、他の受信者に影響を与える可能性があることを恐れています。
あなたが使用しているものとまったく同じヘッダーで成功しましたが、次の違いがあります。
Embedded
はContent-Disposition
ヘッダーの有効な値ではありません。attachment
は問題ありません。 inline
も問題ないはずですが、通常、multipart/related
埋め込み画像のattachment
を見てきました。
Content-ID
ヘッダーの値は message-idと同じ形式 であると想定されており、これは メールアドレスと非常によく似ています です。 <083.gif@yourmailer>
は、ほとんどのメーラーで動作する可能性が高くなります。
Gmailでインライン画像の読み込みに問題があり、PHPのPEAR Mail_Mimeライブラリを誤って使用していることがわかりました。すでに述べたように、Content-IDはメッセージIDのようにフォーマットする必要があります。 PEAR Mail_Mimeライブラリは、Content-IDが指定されていない場合、Content-IDにdomainIDを追加しようとします。また、電子メールのHTML本文のこれらのContent-IDを正規表現に置き換えて、私の場合、このステップは失敗し、HTMLタグからMIME添付ファイルへのリンクが壊れていたため、Gmailがインラインで画像を表示することを拒否することは完全に正しいことでした。しかしながら。