« 連休明けのギター合奏練習に行ってきた | トップページ | 微妙な季節 »

2014年5月 8日 (木)

Pythonでデコ(レ)メールを読む PyDecoMailM V0.03.0 に更新

2014-05-08(木)晴れ

 先日から2回ほど記事を書きましたが、Pythonスクリプトでデコ(レ)メールを読むための PyDecoMailM を再検討してきました。ここで、忘れないうちに一応の勉強結果をまとめておこうと、スクリプトの更新を行いました。 なるべく、各社の文字コードに自動で対応出来るよう、またブラウザに渡すときに文字コード指定を入れるようにと修正しました。

今回の変更内容:
 ・各社のメールに対応できるようにしました。(文字コードなど)
 ・文字コード判定が確定できず文字化けするときのために、文字コード指定の
  メニューを設けました。
  あわせて、タイトル行に文字コードを表示するようにしました。

重要:
  各社のメールの文字コードが違うので、(なるべく)全部に対応できるよう変更を加えました。色々な文字コードがあるので、japanese codec には Shift-JIS、ISO-2022-JPの入っているものが必要です。同梱のドキュメントを見て下さい。

 これで、ある程度長いテキストでは、概ね大丈夫になりました。ただ、極端に短いメール(数文字しかないようなメール)だと、文字コードを正しく確定できなくて文字化けするかもしれません。 
 *:文字化けする場合
   ・メニューの「文字コード」で、文字コードを順次、指定してみる。

    概ね、各社の文字コードは
    ・docomo   UTF-8 (ドコモのメールにはコード指定が入っているので
               そのまま見えるはずです。)
    ・au        ISO-2022-JP
    ・SoftBsnk  Shift-JIS (多分)

   メール送信先のキャリアによって、上記を指定してみるか、順次試してみると
   どれかで読めると思います。

 メールの仕様書を読まずに作れるのは、この辺までかなと思います。まあ、一応動くものができたと言うことにします。自分がデコ(レ)メールを送受信していないので、テストが不十分ですが、、、。

モジュールは、例によって 「Python スクリプト 雑記」 の 「22.2 PyDecoMailM」 に載せました。

 

|

« 連休明けのギター合奏練習に行ってきた | トップページ | 微妙な季節 »

Python」カテゴリの記事

アプリケーション」カテゴリの記事

携帯電話」カテゴリの記事

コメント

masaさま
お世話になります。急いで、20通くらいデコメールを確認しました。
・docomo、・au、・SoftBsnk(htmlでutf-8にしないと文字化けしたもの)、すべて、html画面及びsms送信画面でそのまま読めるようになりました。
すばらしい!お骨折りありがとうございます。

auデコメールの中で1件だけ、前のvsersion v2では読めていたものが、今度のv3で読めなくなっていました。不思議なこともありますね。但し、これは、att1ファイルが端末からそのまま開いて読めます。

投稿: mmatsui | 2014年5月 8日 (木) 23時29分

改善が見られて、ほっとしました。

読めなくなったのが有るのは不思議ですね。以前ので読めていたのであれば、メニューの文字コード指定を順次指定してみれば読めそうな気もしますが、如何でしょうか。

読めないもので、かつ、解析のために提供しても良いというものが出てきましたらお送りいただければ、解析して改善を図りたいと思います。
よろしくお願いいたします。

投稿: masa | 2014年5月 9日 (金) 09時05分

masaさま
なるほど! 問題のauメールだけ、文字コードを ISO-2022-JPに変更したらhtml画面では読めました。通常はautoにしておいて、文字化けの時だけ変更すればいいんですね。browser設定を変更しなくて済むので簡単ですね。

autoで読めないauメールがたくさんある場合は、また、連絡いたします。
auデコメールのatt1ファイルは、直接読めるものと読めないものがあり、また、N82では保存できるものとできないものがあります。何か複雑です。

softbankからはデコメールが来ないのでよくわかりません。
とにかく、文字コードauto設定でほとんど読めます。ありがとうございました。

投稿: mmatsui | 2014年5月 9日 (金) 10時20分

メニュー操作が入るものの何とか読める、ということで安心しました。
また、何かありましたら、よろしくお願いいたします。

投稿: masa | 2014年5月 9日 (金) 11時31分

masaさま
こんにちは!ご報告です。PyDecomail V0.04.0になって、N82での不具合が解消されました。
1)Enterボタンでファイルを開くとniternetに回り道せず、直接html画面が開くようになりました。
2)右上終了ボタンを押すとhtml画面が正常に(browserも同時に)終了するようになりました。。
scriptでも同様に、ver3に対してver4の改善を確認しました
(もともとE72では上記問題は出ませんでしたが)

これで、ほとんどのatt1ファイルが読めるようになりました。但し、ezwebメールでタイトルのない場合は文字化けして読めないようです(notepadではテキスト部分は見えます)。sms画面も同様です。ご参考までに別途メールでファイルをお送りします。
いろいろ手を加えていただき、かなりの使いやすくなりました。ありがとうございました。

投稿: mmatsui | 2014年5月28日 (水) 17時09分

ファイルいただきました。ありがとうございます。これから、ゆっくりと検討してゆきます。

新しいバージョンで、多少、改善の方向ということで安心しました。まだ、読めないのがあるとは、デコ(レ)メールは、なかなか手強いですね。でも、スクリプトを弄る楽しみにはなります。

投稿: masa | 2014年5月28日 (水) 21時08分

早速、ファイルを見ました。
auの中でも前回のファイルと文字コードが違うのと、使われている絵文字の
相互作用で、自動判定が惑わされてしまうようです。今回のメールの
HTMLメール部分はShift-JISでした。

ただし、下記の方法で、PyDecoMil 0.04.0 で読むことは出来ました。

(1)設定メニューの「ATT1調整」で、Plainの方を指定する。
4番目のPlain/Editor が、一番綺麗に読めます(ここだと絵文字も見えます)。
SMS送信も大丈夫です。本当は、ここを常用するのが成功確率は高いと思います。

(2)設定メニューの「ATT1調整」でHTMLの方を指定している場合は
左オプションキーメニューの「文字コード」を順次指定してメールを開いてみる。
今回のメールは Shift-JIS を指定すると読めます。

いずれにしても、文字化けする場合は、(2)のように文字コード指定をすると
文章は読むことが出来ます。(順番に指定してみないといけないですが)
この文字コード指定は、ATT1調整指定でPlain、HTMLどちらの指定のときも有効です。
読めないときは試して下さい。

自動で出来るように対応できるかどうかは、今後考えてゆきます

投稿: masa | 2014年5月28日 (水) 22時06分

masaさま
失礼しました。ごなるほど、Plain/Editorだと、文字化けもなくまた絵文字も再現されますね。これまで、HTMLだと色付きテキストが再現されるのでHTMLでずっと見ていました。教示ありがとうございます。

投稿: mmatsui | 2014年5月28日 (水) 23時23分

HTML指定でも、今回のメールもそのまま読めるような判定を入れることが出来ました。テスト、ドキュメント修正が終わったら、またブログとPythonスクリプト雑記に掲載します。
まあ、Plain text指定を使えば不要かもしれませんが、忘れないうちに入れておくことにしました。

投稿: masa | 2014年5月30日 (金) 20時25分

前のコメントへの追伸です。
色々な条件を作ってテストした結果、文字コードによっては改善にならないことが分かりました。
現状のV0.04.0が一番素直なようです。

・設定のATT1調整でPlain Text指定を常用するほうが確率が高い。
・それでも駄目な場合(HTML指定のときも同じですが)は、メニューで文字コードを指定してみる。
という使い方になると思います。

投稿: masa | 2014年5月30日 (金) 22時21分

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/513620/59606274

この記事へのトラックバック一覧です: Pythonでデコ(レ)メールを読む PyDecoMailM V0.03.0 に更新:

« 連休明けのギター合奏練習に行ってきた | トップページ | 微妙な季節 »