2007年6月3日日曜日

W-ZERO3メールの文字化け文章を解読するアプリ

普段のメールはGmailを使っていて、Gmailに届いたメールをzero3[es]に転送している。メールが届くと直ぐに確認できるので便利だけど、たまに文字化けして読めないメールが届く。
今までは文字化けするのは amazon とかのダイレクトメールなので読めなくても気にしなかったのだが、blogger から届くメールも文字化けして読めないのが気になったので、簡単に文字エンコードを変換するアプリを作ってみた
といってもzero3自体に機能を追加することは出来ないので、文字化けしたメッセージをクリップボードにコピーして、その内容を変換して表示する。
本当は表示中のウィンドウから自動的に文字列を取得するようにしたかったけどやり方がわからなかった


codechange1.00

cab ファイル

実行には COMPACT FRAME WORK2.0 が必要
zero3[es]でしか試してません


変換できるのはエンコード形式が quoted-printable のもの
以下のようなメール本文であれば全文コピーしてから本アプリを立ち上げると変換した内容を表示する(はず)


------=_Part_152422_16855343.1180230507078
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: quoted-printable



Amazon.co.jp=1B$B$N$*5RMM$X!"=1B(B

Amazon.co.jp=1B$B$G!"0JA0$K!X=1B(BDesign Wave MAGAZINE (=1B$B%G%6%$%s=1B(B =


最初の3行でエンコード形式を判定しているので、これがないと正しく変換できないと思う
さらに最初の一行目の区切り文字列が"-----=xxxx"でないと正しく判別できない事がある。
amazon の注文確認メールは正しく判別できないどころか例外を出してしまった

一応 base64 と text/html も変換するようにしてみた

html は標準では表示しないで、メニューから html表示 をチェックしてから再読込をチェックすると表示するようにした(html内にで外部リンクが含まれるとダイアルアップしてウザイので)

プログラムコードは C# で書いた
ネイティブアプリではないので起動にちょっと待たされる。さらに、クリップボード内の文字列が大きいと変換に結構待たされる。

改善点としては結構あって
  • 例外が出ないようにしたい
  • 文字列の変換を無駄に何度も行っているので処理が重い
  • ネイティブアプリにしたい
  • アクティブウィンドウ内の文字列を自動で取り込みたい
  • html のon/off を簡単にしたい
とりあえずたいしたソースじゃないので ソースファイル もアップしときます

zero3メールを使わないでちゃんとデコードしてくれるメーラーを使ったほうが良い気もする。そんなものがあるのかどうか知らないけどね。使ってないし使いたくないので知らないけど、MSのメーラーは大丈夫なのかな?







0 件のコメント: