携帯へのメール送信
携帯へメールを送りたいとき半角カナを使いたかったりするんですが、
Content-Type: text/plain; charset="ISO-2022-JP"
で送っちゃうと、最近のMTAかMUAは勝手に全角カナに変換してしまいます。
ヘッダと一緒でbase64でエンコードして送ってあげるとContent-Transfer-Encoding:7bitなメールで送ることが出来るので一応安心です。
最近では8bitでも送っても問題ないような気もしますが、どこに堅物が居るかは判りません。
携帯にかんしてはある程度閉じられた環境なので8bitでも行けるかと思って調べてみました。
Content- Type | Content- Transfer- Encoding | 本文の表示(半角カナを含む) | 備考 | |||
---|---|---|---|---|---|---|
Becky! | F904i (Docomo) | A5518SA (au) | 810P (SoftBank) | |||
text/plain; charset="ISO-2022-JP" | 7bit | × | × | × | × | |
text/plain; charset="ISO-2022-JP" | base64 | ○*1 | ○*2 | ○*2 | × | |
text/plain; charset="Shift_JIS" | 7bit | ○ | ○ | ○ | ○ | 一応出る。 但しRFC821や設定内容(Shift_JISは8bitなので)には矛盾しているのでどこかで、誰かが上手いことやってくれてるだけ。 |
text/plain; charset="Shift_JIS" | 8bit | ○ | ○ | ○ | ○ | RFC821に違反。RFC2045には準拠しているが全てのMTAがこの仕様を満たしているとは言い難い。 |
text/plain; charset="Shift_JIS" | base64*3 | ○ | ○ | ○ | ○ | |
text/plain; charset="UTF-8" | 8bit | ○ | ○ | ×*4 | ○ | |
text/plain; charset="UTF-8" | base64*3 | ○ | ○ | ×*4 | ○ | |
text/plain; charset="EUC_JP" | 8bit | ○ | ○ | ×*4 | ○ | |
text/plain; charset="EUC_JP" | base64*3 | ○ | ○ | ×*4 | ○ |
- *1 MUAが適時変更してるだけ
- *2 MUAが適時変更している。もしくはDocomoとauではJISをShift_JISとして使用している(推測)
- *3 MTAの実装によっては自動でContent-Transfer-Encoding:8bitとして変換される物もある。その場合、拡張ヘッダ「X-MIME-Autoconverted: from base64 to 8bit by hoge.com id HOGE0000000」が付与される。
- *4 A5518SAは古いのでMEDIA SKINでも確認しが、表示できず。
こんな感じです。でもキャリア毎に作りを変えるのはいい加減何とかして欲しい。