開発環境はASP.NET 2.0、 IDE:Visual Studio2005、 言語:C#です。
現在、システム(自分で書いたプログラム)からau携帯へHTML形式でメールを送信しますと、『認識できない形式のため表示できません』となってしまい本文が表示できません。
OUTLOOKからHTML形式のメールをAU携帯に送信するテストを行いましたが、こちらは問題なく表示できます。
メッセージのソースを見比べますとOUTLOOKの方は、本文がHTMLのタグ以外の日本語はBase64でエンコードされていますが、システムから送信した方は、エンコードされていません。
メールの形式は以下の形式で送っています。
Content-Type: text/html;
charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
AU携帯へHTML形式で送信するヒントを頂けますと幸いです。
HTML形式のメールを送信するときは、次のようなフォーマットにすることが必要です。
HTMLの日本語エンコードはBase64ではなく、iso-2022-jp(JIS)です。
※ヘッダのContent-Type:はmultipart/alternativeにする。
Content-Type: multipart/alternative;
boundary="適当な文字列"
(空行)
This is a multi-part message in MIME format.
(空行)
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
(空行)
(JISエンコードしたPLAINTXT本文=HTML非対応ブラウザ用)
--boundaryとして設定した文字列
Content-Type: text/html; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
(空行)
(JISエンコードしたHTML本文)
--boundaryとして設定した文字列--
※各boundaryの前には半角ハイフンが2個、最後のboundaryの後には半角ハイフンが2個必要です。
HTML形式のメールを送信するときは、次のようなフォーマットにすることが必要です。
HTMLの日本語エンコードはBase64ではなく、iso-2022-jp(JIS)です。
※ヘッダのContent-Type:はmultipart/alternativeにする。
Content-Type: multipart/alternative;
boundary="適当な文字列"
(空行)
This is a multi-part message in MIME format.
(空行)
Content-Type: text/plain; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
(空行)
(JISエンコードしたPLAINTXT本文=HTML非対応ブラウザ用)
--boundaryとして設定した文字列
Content-Type: text/html; charset="iso-2022-jp"
Content-Transfer-Encoding: 7bit
(空行)
(JISエンコードしたHTML本文)
--boundaryとして設定した文字列--
※各boundaryの前には半角ハイフンが2個、最後のboundaryの後には半角ハイフンが2個必要です。
ご回答ありがとうございます。
ヘッダのmultipart/alternativeにして、HTMLとplainTextを用意してあげる必要があるんですね。
参考になりました。
デコレーションメール | メール・コミュニケーション | au by KDDI
携帯で使えるのは HTML メールもどきなので、それなりに流儀に従ってあげないと。
AU では同等の機能がデコレーションメールとして位置づけられています。
要件や条件そのほかは一通りまとまっているはずです。
ご回答ありがとうございます。
参考になります。
でもなぜか教えて頂いたURLが開けませんでした。
ご回答ありがとうございます。
ヘッダのmultipart/alternativeにして、HTMLとplainTextを用意してあげる必要があるんですね。
参考になりました。