[[diary/Kojima]]

・docomoのメーラー

まだ、個人の設定レベルの問題かシステムレベルの問題か、よく分かってないのだけれど、とりあえず現象の報告。このあたりに晒しておけば、もっと詳しい人がコメントしてくれることを期待(w

地元の消防団の各種連絡用に、手元で fml を使ったメーリングリストを作っているのだけれど、そこに流れるメールが「文字化けしている」という連絡が5/21以降、複数件届いた。

手元にも同じメールが来ていて、特に文字化けしている様子はなかったので、当初は個人の設定レベルかな、、と思っていたのだけれど、操法大会の打ち上げとかで全員が揃った際に確認してみると、文字化けしている、という人が3人ほどいる。

5/20までは問題無かった、というので、MLのログを調べてみたところ、文字化けするメールの送信者のメールクライアント(MUA)のバージョンが、5/21に上がっている。

- 5/20 までのMUAは docomo mail ver.11030

 Date: Tue, 20 May 2014 23:53:53 +0900
 From: shoubou@linet.gr.jp
 Reply-To: shoubou@linet.gr.jp
 To: 消防豊地班<shoubou@linet.gr.jp>
 Message-Id: <140520235355000000Je@docomo.ne.jp>
 ...
 X-Mailer: docomo mail ver.11030
 X-DCMMail: spmode
 Mime-Version: 1.0
 Content-Type: text/plain; charset="iso-2022-jp"
 Content-Transfer-Encoding: 7bit

- 5/21 以降はバージョンが11050に上がって、文字コードが変っている

 Date: Wed, 21 May 2014 22:11:16 +0900
 From: shoubou@linet.gr.jp
 Reply-To: shoubou@linet.gr.jp
 To: 消防豊地班<shoubou@linet.gr.jp>
 Message-Id: <140521221122000000Js@docomo.ne.jp>
 X-Mailer: docomo mail ver.11050
 X-DCMMail: spmode
 Mime-Version: 1.0
 Content-Type: text/plain; charset="utf-8"
 Content-Transfer-Encoding: Base64

ー貶∧源擎修韻靴討い襦△箸い佑au のケータイで、アドレスは @ezweb.ne.jp。
文字化けの状況を見ると、どうもUTF-8をShift-JISかiso-2022-jpとして表示している気配。

メールを送った当人は、IT回りは詳しくなくて、特に個人的に設定変更した覚えはないらしい。しばらく当人の端末をイジってみたのだけれど、ざっと見た限り、送信時の文字コードを指定するような設定は無さそう。

とりあえず、こういう風に考えてみた。

- docomo mail ver.11030 までは、iso-2022-jpで Encoding 無し(7bits)で送っていた。

- docomo mail ver.11050 からは、UTF-8をBase64エンコードした形式で送るようになった

- au の ezweb.ne.jp のメールサーバは、Base64エンコードを展開はするものの、中から出てくるテキストの文字コードを判別せずに表示する

docomo mail ver.11050 で、文字コードを iso-2022-jp にするような設定が可能ならば、それが一番簡単なんだけど、どうもそういうオプションは見当らないので、仕方なく、UTF8 + Base64 エンコードなメールは、Base64を展開して文字コードを iso-2022-jp に変換するようなフィルタを書いて fml に送る前に処理するようにしてみた。ところがPythonの文字コード変換機能は、きちんと変換できない文字があるとエラーになるようで、UTF-8で定義されていて iso-2022-jp には無い文字(全角波ダッシュとか)を使われると、フィルタがうまく機能しない感じ。

# とりあえず手元で使っているUTF-8固有文字を変換する関数は組み込んでおいた

まぁ、Pythonのフィルタ側は、文字コード変換を Try: してみて、エラーになったら(一部の人には読めないけど)変換せずに送る、みたいな手もありかなぁ、、と思っているものの、docomo のスマホ用MUA(docomo mail)の ver.11050 には送信時の文字コードを指定するようなオプションは本当に存在しないのだろうか?

ちょっと前に、ケータイのキャリア間で異なっている絵文字をUTF-8を使って統一することにした、旨の記事を見た記憶があるのだけれど、docomo mail ver.11050 で文字コードをUTF-8にしたというのはそのための布石なのだろうか? まぁ、ezweb 側もこの設定に対応してbase64で届いたメールの文字コードをちゃんと解釈するようになれば、ヘタなフィルタをかける必要は無くなるのだけれど。。
- 改めて考えると、この状態だと docomo mail ver.11050 から @ezweb.ne.jp に投げたメールはことごとく文字化けするはずだけど、そういう問題も聞かないということは、ezweb.ne.jp の方で docomo ドメインから直接来たメールとMLサーバを経由して来たメールで処理を変えているのだろうか? -- [[kojima]] &new{2014-06-02 (月) 21:33:30};

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS