« Python 通貨換算アプリ (PyCurrency) | トップページ | Pythonスクリプトでデコ(レ)メールを読む 10 PyDecoMailM 更新 »

2014年1月 5日 (日)

Pythonスクリプトでデコ(レ)メールを読む 9 PyDMViewer(1.04.0)

2014-01-05(日)曇り、小さな雪が舞った模様

 デコ(レ)メールを読むPythonスクリプト「PyDMViewer」を V 1_04_0 に更新しました。変更内容は次の通りです。

 今までは、文字のデコードエラーの時は表示のみ行い、SMSは送信できませんでした。今度のバージョンからは、エラー文字をダミー文字に置き換えて、SMSで送るようにしました。多分、多くの場合、当該文字は□になると思いますが、その他の部分は読めますので、SMSで送る意味はあると思います。なお、表示は、そのままの文字でブラウザに表示させます。多分、その文字は文字化けはすると思いますが、、。

 相変わらず、ちょこちょことPythonを弄っています。モジュールは、例によって

  「Python スクリプト 雑記」 の 「22.デコ(レ)メールを読む」 に載せました。

 

|

« Python 通貨換算アプリ (PyCurrency) | トップページ | Pythonスクリプトでデコ(レ)メールを読む 10 PyDecoMailM 更新 »

Python」カテゴリの記事

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

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

コメント

役に立つアプリを開発いただきありがとうございます。
Nokia EN82で最新のPyDecomailMとPyDmViewerを使いデコメールが読めるようになりました。若干不便があるようなので対処法があればお教えください。
1)N82でファイルを開くときブラウザーがwifiやアクセスポイントにつなぎに行き通信が発生して不便です(E72はthml画面だけが開きます)。2)Docomoメール受信の際、html画面では、文字が読めるのですが、SMS送信画面にすると文字化けになり、送信した文も同様に文字化けしました(送らなければよいのですが)。よろしくお願いしす。

投稿: mmatsui | 2014年4月28日 (月) 21時34分

多少でもお役にたてているのなら幸いです。
さて、ご質問の件です。PythonはV1.4.x(1.4.4 または1.4.5)でよろしいでしょうか。その前提で見てみました。

(1)の件、これは私の携帯電話では、どれもつなぎに行かないのでわかりません。E72でもつなぎに行かないということなので、携帯電話(のソフト)の違いによるものなのかなと推測するしかないみたいです。WEBブラウザにも逃げるための設定もないみたいですし、Python側から起動時のフラグもないみたいです。(1)については、この位しか言えなくて済みません。
長くなるので(2)は次のコメントにします。

投稿: masa | 2014年4月29日 (火) 10時30分

(続)(2)についてです。こちらも、対策の話ではないのですが、、。
デコメールの中には、Pythonで通常の文字コードとして扱うものではないコードが含めれています。このため、Pythonではデコードできない部分があります(ブラウザでは比較的扱える)。この場合、ブラウザでは読めるが、SMS送信のためにPython でデコードすると文字ではないものになります。特定の部分だけ化けても、他はなるべく読める文字になるよう努力しているのですが、上記のようなコードだけはどうしようもありません。
ところで、化ける場合、一部の文字部分でしょうか、全体でしょうか。全体だとすると、何か処理に足りない部分があるかもしれませんので、興味が有るところです。ただ、私自身がデコメールを受けることがないので、テストすべき対象(att1ファイル)がないのが現状です。
もう一度、リストを見直してみる予定ですが、再現テストが出来ないので、あまり期待できないかもしれません。
見直したら、再度書き込みします。

投稿: masa | 2014年4月29日 (火) 10時45分

masaさま
mmatsuiです。早速のご教示ありがとうございます。初期のscriptから使わせていただいておりました。最近も開発を続けておられるので、updateしてみました。Python scriptがsis化されて使いやすくなりました。小生はnokia党でしたが、昨今の状況から、半分androidにsihftしています。
(1)の件ですが、N82はaccess pointにつなぎに行くため、途中でbrowser接続をcancelする必要があります。X7は違う画面のbrowserが立ち上がります。E72は、browserのみが起動し、最も使いやすい状態です。いずれの場合も、attファイルをbrowserで読んだ後、本sis app画面の右上終了ボタンでは終了しません。左上menuボタンの終了を押さないと、browser appがbackgroundに残っていて、本sis appが閉じないようです。ここが若干不便です
(2)の件ですが、メールによって状況が違うようです。①ezwebのデコメールは、html画面ではテキストのみ読めますが、sms送信画面では文字化けします。(但し、htmlで読めているのでsms送信の必要性は低いです)。②smart phone(?)からのメールは、html画面では文字化けしますが、sms送信画面ではテキストと絵文字の数行が正常に見えて。送信すればしっかり読めます。③PC経由メールなどは、html、sums送信画面とも正常に読めます(この場合、最初から携帯mailで読めているので、検討の対象外ですが)。
encoding設定を変えてみましたが、変わりませんでした。
デコメールはあまり受信しませんが、本appのhtml画面かsms送信にて何れかで読み取れるので、ありがたく利用させていただいております。
以上、追加状況報告させていただきました。

投稿: mmatsui | 2014年4月29日 (火) 13時26分

(1)の件は、機種によるかもしれませんね。ブラウザもプログラム名を決めうちで起動していますが、いつも使うのは違う可能性もありますし。この辺は、どの機種も持っていないのが、辛いところです。

ブラウザで見たら、まずブラウザを終了してPyDecoMailM(のリスト画面に)に戻る、、次のメールをブラウザで見て、終了してアプリに戻る、、最後にアプリを終了する。と言う動きを想定しています。ブラウザ終了後に一時ファイルを削除するため、ブラウザの終了を待っています。ブラウザで見た後は、ブラウザを終了して下さい。そうしないと、アプリが終了できません。
((2)の件へ続く)

投稿: masa | 2014年4月29日 (火) 19時49分

(2)の件
2番目のスマートフォンからの場合、sms送信画面で10文字程度見えるというのは正しい動作です。smsで送ろうとしているテキストが、正しいか見るために10数文字を表示しているからです(駄目なら送信しないために)。

また、htmlで文字化け、については、ブラウザの設定で文字コードを自動からコード指定(UTF-8、UTF-16、Shift-JIS、、など)をすると、読めるかもしれません。

1番目と2番目について、リストを見てみたのですが、結局は駄目な実物のファイルがないと分からないですね。どういうフォーマット、どういうコードまで対象にするか、などが決まらないからです。docomoの実例ひとつと推測で作っていますが、本来、キャリアのメールソフトで扱う範疇のもので、仕様が分からないからです。もし、テストメールで、駄目なファイルが取り出せたら戴けると検討しやすいのですが。

もう少し、色々と考えてみます。何か分かったら、ここへ書きます。
もし、新たなモジュールを作ったら、ブログ記事の方に書きます。

投稿: masa | 2014年4月29日 (火) 20時04分

masaさま
mmatsuiです。
いろいろお考えいただきありがとうございます。お手を煩わさないように、2,3テストを行い追加のご連絡です。
1)docomoメールは、att.html画面でもsms送信画面でも正常に読めます(文字のみ)。問題ありませんでした。
2)ezwebから来たデコレメールるが問題のようで、att.htmlで読めている(文字だけ)のに送信sms画面では文字化け視しました。折角htmlで読めているのにちょっと残念。
3)その他、smartphoneなどatt.htmlで全く読めなくて、sms送信画面で読める場合は、codingが原因と思い、shiftjis、utf8などいろいろ変えてみましたが状況は変わりませんでした。送信すればOKなので実用上は困りません。

なお、操作上で、att.htmlの画面からsms送信画面に戻すとき、右上の「閉じる」ボタンを押すと文字は消えますが、browserが消えずに残っており進めなくなります。左上のoptionボタンのmenuから終了を押すと正常にsms画面に戻れます。n82、e72、x7いずれも同じでここが直ると非常に快適になるように思いました。機種依存性が高いと思いますが。

投稿: mmatsui | 2014年4月29日 (火) 21時52分

やはり、docomoメールのatt1をみて作ったから、docomoは良さそうですね。ezwebについては、ezwebの携帯の友人探して調べてみます。

ブラウザが終了しない件は、不思議です。ブラウザが表示(htmlファイルが表示)されている間は、このアプリは関係ないので、普通にブラウザは終了されるはずなのですが。私の携帯電話では、どれも右ボタン(閉じる、close)で終了します。このアプリからでなく、普通にブラウザを使ったときは、右ボタンで終了できるんですよね。ちょっと不思議で、首をひねっています。

投稿: masa | 2014年4月30日 (水) 11時27分

masaさま
こんにちは。mmtsuiです。新しい追加情報です。私はN82(ソフトバンク製)及びE72(香港製、日本語入力)でsimはsoftbank赤simを使用しています。スマフォ、web系のデコメールを受けた場合、html仮面の文字化けする問題は、browserのencodingをuft-8にすると正常になりました。従って、att.html及びsms送信画面ともデコメールに関しては、問題解決です。但し、副作用として、browse閲覧時にYahoo Japanなどが文字化けし、また、ezwebのデコメールがhtml.画面で全文字化けになりました。
まとめると、
1)browser encoding 「自動」の場合
(1)docomoデコメールは、html画面、sms送信画面とも問題なし。
(2)ezweb(au)のデコメールは、html画面は正常で、sms送信画面で全文字化け。
(3)スマフォ、web系デコメールは、html画面全文字化け、sms送信画面は正常。
(4)Internet web閲覧は正常。

2)browser encodingをuft-8の場合
(1)docomoデコメールは、html画面、sms送信画面とも問題なし。
(2)ezwebのデコレメールは、htmlもsms送信画面も両方全文字化け。
(3)スマフォ、web系デコメールは、html画面もsms送信画面も両方正常。
(4)Internet web閲覧が大幅に文字化け。

shift-jisなど他のencodingは効果ありませんでした。それぞれ、メール系統により切り替えたらどのメールもほとんど読めそうです。ezewbのattファイルご入り用でしたら差し上げます。携帯電話の機種や設定に影響されるので、すべて一括読めるようにするのは大変難そうですね。以上ご参考までに。アプリがscriptからsisになった段階でかなり使いやすくなっています。

投稿: mmatsui | 2014年5月 2日 (金) 13時26分

詳細なテストと整理、ありがとうございます。
パズルみたいですが、どうすればなるべく多く読めるか考えてみたいと思います。基本的にはHTML形式になっているメール本文が有るはずなので、対応できそうな気はするのですが、実際のフォーマットを見ないと、色々な検出をどうすればいいかが決定しにくいんです。
この辺のメールはユニコード対応になっているので、多分Shift-JISは関係ないかなと思いながら、確証がないので入れているのですが、その辺が足を引っ張っているかもしれないし、、などと、頭をひねっています。

 もし、表示などでエラーになるメールのATTファイルが戴けるのでしたら、早く対応できるのではないかと思います。
もし、いただける場合は、メールならば画面左上の「メールを送信」から送っていただけると嬉しいです。

投稿: masa | 2014年5月 2日 (金) 19時37分

masaさま。ezwebデコメールの例att1 fileをお送りしました。私のN82では、htmlで読めますが、sms送信画面では文字化けしています。PCでは自動では文字化けしていますが、utf-8にすれば、文字は読めているようです。

投稿: mmatsui | 2014年5月 3日 (土) 10時04分

データ、ありがとうございました。
メールデータの作りが分かりました。
対応方法が悩ましいところですが、、。
メール返信しました。

投稿: masa | 2014年5月 3日 (土) 11時51分

masa様。お世話になります。もう1ファイル追加送信致しました。ご参考ください。なお、端末画面操作上で右上の「閉じる」ボタンでbrowserが閉じないのはN82だけでした。E72は正常にoffできます。N82側の問題かもしれません。

投稿: mmatsui | 2014年5月 4日 (日) 23時36分

追加データありがとうございました。更に検討すべき点を知ることが出来ました。他の方への参考のためにも、現状知ったことを書いておきます(メールにも書きましたが)。
何としても読みたいときの参考になるとおもいます。

エンコード種別ですが
 docomo UTF-8 種別指定有り(charset= )
ezweb ISO-2022-JP(又は JIS(ISO)と呼ばれる) 種別指定無し
 SBM 多分 Shift-JIS 種別指定は多分あり
 メルマガ UTF-8 種別指定無し

上記のように各社によってコードが違い、かつコード種別指定が無い社があるので、うまく判別できないケースがあります。
html表示で文字化けして読めないときは、送り先によって
ブラウザ設定のコード指定を上記3種のどれかに変えれば読めます。

投稿: masa | 2014年5月 5日 (月) 09時47分

コメントを書く



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




トラックバック

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

この記事へのトラックバック一覧です: Pythonスクリプトでデコ(レ)メールを読む 9 PyDMViewer(1.04.0):

« Python 通貨換算アプリ (PyCurrency) | トップページ | Pythonスクリプトでデコ(レ)メールを読む 10 PyDecoMailM 更新 »