特定のメールクライアントでは、送信者が(従来の添付ファイルとしてではなく)メールの本文に直接画像を配置することができます。アプリケーションでこれらの電子メールの1つを受信した場合、メッセージ本文のみtext/plain
を確認し、送信者がインライン画像を埋め込んだことを確認できる必要があります。
メッセージ本文で画像プレースホルダーを見つけるために正規表現を作成しようとしています。これにより、メッセージのHTML対応バージョンのタグとtext/plain
それらを交換できます。<img>
(奇抜な、私は知っていますが、これは要件です)。
私が見つけた問題は、プレースホルダーが送信メールクライアントによって異なることです。たとえば、MS Outlookから送信された場合text/plain
、マルチパートメッセージの本文は次のようになります。
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Check out this image:
[cid:image001.jpg@01CB50D4.769583B0]
Isn't it cool??
Gmailから送信される同様のメッセージは、少し異なります。
Content-Type: text/plain; charset=ISO-8859-1
Check out this image:
[image: image001.jpg]
Isn't it cool??
base64でエンコードされた画像のtext/html
本体とパーツが続きます。image/jpeg
誰かが以前にこれについて何か調査をして、リストを編集したり、この目的のために特別に正規表現を作成したことがありますか?
私の目標を達成するためのより信頼できる方法text/html
は、メッセージの一部を確認することです。これは、私が行ったいくつかのテストからはもう少し標準化されているようですが、残念ながら、このシナリオ。
誰かにとって重要な場合は、C#を使用しています。
これまでにコンパイルしたテキスト/プレーン画像のプレースホルダーのリストは次のとおりです。
- Gmail:
[image: filename.jpg]
- Outlook 2007:
[cid:filename.jpg@01CB50D4.769583B0]
- サンダーバード3.0.7:
none