ようこそゲストさん

CPA-LABテクニカル

2008/02/19(火) Semail機種依存文字について

機種依存文字についてのメールは難しい。
できることなら、使わないのがいいのだけど、どうしても使いたい場合の覚書。
CakePHPの日本語メールコンポーネントが大前提。

機種依存文字をメールで送る

sjis-win で送る (sjis では×)

PCであれば、安心でしょう。対応しているメーラーも多いと思う。
携帯メールでは。。。au では本文は大丈夫でした。他は実機がないのでわかりません。
しかし、auでは、ヘッダーがsjis-winだと文字化けします。
なので、ヘッダーは、iso-2022-jp 本文はsjis本文base64という形で送る必要があるでしょう。

機種依存文字を送る場合の一番のオススメ
ヘッダー本文
iso-2022-jpsjis-win + base64

つまり
$this->Semail->spok_default=false;
$this->Semail->charset='iso-2022-jp';  // ヘッダーのcharset
$this->Semail->spok_content_charset='sjis-win';  // 本文のcharset
$this->Semail->spok_content_encoding="base64";//本文のbase64
となります。

UTF-8 + 本文base64 で送る

PCであれば、もっとも安心でしょう。対応しているメーラーも多いと思う。
ヘッダー本文
utf-8utf-8 + base64
$this->Semail->charset='utf-8';  // ヘッダーと本文のcharset同時指定
$this->Semail->spok_content_encoding="base64";//本文のbase64
utf-8なら、Macとwindows間も問題ない(はず。Mac持っていないので)


しかし、携帯メールでは。。。。少なくともauではダメのよう。

eucJP-win

PCでは大丈夫ですが、auでは全然ダメでした。

iso-2022-jp

もちろんダメでした。でも機種依存文字はダメですが、auではそれ以外の文字はちゃんと表示されるので、UTF-8やeucJP^winよりはいいでしょう。ただし、このページでは、機種依存文字についての話なので、その点ではダメなのは同じです。

留意点

以上は、すべてSemailコンポーネントの話であり、他の一般のメーラーで実現可能かどうかはわかりませんのでご注意を。

名前:  非公開コメント   

  • TB-URL  http://cpa-lab.com/tech/090/tb/