2006年03月13日 [長年日記]
_ [JavaScript] prototype.js。
久々に買ったWEB+DB PRESS Vol.31に載っていたprototype.jsのソースを読んでみた。 Hashのリテラルをクラス定義の記法として使うところなんかは見事なアイディアだね。メソッドの定義はrubyを参考にしてるっぽいところがあるから、習得には時間はかからなそう。
今度のプロジェクトに使ってみようと思うので覚えておこう。
_ [W-ZERO3] SandR。
ってことで、メールの送受信を行うだけのソフトを作るつもりなんだけど、 ただSendNowの送受信部分を持ってくるだけじゃ(私が)つまらないので、 別の方法で実装してみることにした。
SendNowではレジストリキーを書き換えることで、そのレジストリを監視しているらしいSHARPのなんかのソフトが自動的に送受信をしてくれる、という仕組みで動いている。 これだと、ActiveSync中にメールの送信をしちゃって「あ〜失敗した〜」ってなってももう後の祭りで、受信に失敗するのを指をくわえて見ていないといけない。さらにそのときに「センターにEメールがあります」とか言われる。「お。メールかなどきどき」とか思いながらUSBケーブルはずして再度送受信しても、とーぜんながらメールはない。「どーせ私にゃそんなに頻繁にメールなんて来ねぇようわぁぁぁん」とか自暴自棄になっちゃうわけなのであるよ。
…そんな話はどーでもよくて。
結局、メール送受信時のメッセージがうざったいわけですな。 これを全部自力で実装することで思うように送受信ができるようになるといいな、と。
やらなきゃいけないことはこんなものか。
- ActiveSync中かどうかをチェックする。
- ActiveSyncを問答無用で切る。
- ダイヤルアップする。
- メール送受信する。
- ダイヤルアップ切る。
- ActiveSync復活。
で、まずは既にソフトもあるのでできるはずだ〜と思いながらダイヤルアップの接続/切断を実装してみているわけだけど。 いきなり挫折してしまった。
切断はRasHangUpでいけたし、接続中チェックはRasEnumConnectionsでいけたんだけど、接続がうまくいかない。 セオリーどおりRasDialしたんだけど、「PT」マークは出ても矢印にはペケがついたままになってしまう。 ぐーぐる様に聞いてみるとConnMgrEstablishConnectionSyncというのがあるらしいのでこいつを使ってみたら、一瞬接続はされるんだけど、なぜかその後すぐに切断されてしまう。CONNMGR_CONNECTIONINFO構造体の設定が悪いんだと思うけどなんだかうまくいかない。
とりあえず、他のことから手をつけて頭をすっきりさせてから再挑戦することにしよう。
_ [W-ZERO3] W-ZERO3 Mail Filter Ver.0.20 リリース。
受信済みアイテム以外のフォルダも振り分け可能になったVer.0.20を公開します。これで、もかなえられたと思います。 フォルダごとに振り分け条件を変えることができないのが難点ではありますけど、まずはこれでお試しください。
他の細かい点も含めた、変更点は以下の通り。
- targetセクションを追加し、受信済みアイテム以外のフォルダの振り分けも可能にした。
- showdirオプションを追加した。
- 二重起動したら、二回目の起動はムシするようにした。
- wmf.cppをリファクタリング。filter.cppとmakesetting.cppとして分離させた。
- 生成されるiniファイルのセクション名の前に空行を設けた。
_ [W-ZERO3] wmfで相談。
今のwmfって、/noreadパラメータ&wmfm.exeの名前変更による未読メール表示って仕様なんですけど、 wmf.iniがある以上、コマンドラインパラメータである必要性がなくなっている気がしています。 以下のようにしてしまいたいのですがいかがなものでしょうか。。。
- /noreadパラメータは廃止する。
- wmfm.exeという名前変更によるオプション指定も廃止する。
- 設定ファイル(wmf.ini)に、shownoreadオプションを追加する。
- shownoreadオプションが「1」のときは未読メールを表示(/noread相当)し、「0」の時はメールの表示は行わない。
- shownoreadオプションのデフォルトでは1とする。
_ [W-ZERO3] さっそく繋がらないわけですが。
見れてる人もいるみたいなんですけどねぇ。 まだ正式公開前なんでしょうか。
あ、ただいま3/13 24:35ってところです。
(2006/03/14追記)
フルブラウザ搭載のウィルコムの電話機(W-ZERO3除く)
…ちゃんと「W-ZERO3除く」って書いてあるじゃん。よく読めよ、自分…orz
_ [W-ZERO3] メールのバックアップについて考える。
まずは、wmfのオプションのことについてコメントいただいた皆様、ありがとうございます。 もーちょっと考えた上で、方向性を出したいと思います。
で、ここでの話題はメールのバックアップのコメントのこと。
私もwmfを作りながら、メールのバックアップをする機能をなんとか作れないかな〜と思っていました。
まず考えたのが、メールをOutlook メールのアカウントに移動して、ActiveSyncで連携できないか、ということ。幸い、wmfは別アカウントへの移動も可能でしたので、早速試してみました。もう何やったんだか忘れちゃうぐらいいろいろ試しました。 …結局わかったのは、pdxなメールを無理やりOutlookメールのアカウントのフォルダに移動させて同期しようとすると、PC側の状態を正と捉えているのか、W-ZERO3側にあるpdxなメールが消えてしまう、ということ。 もしかしたら私のやり方がまずいだけなのかもしれないのですが、結局解決には至らなかったので挫折しています。
次に考えたのが、特定のフォルダ以下にあるメールを全て別のメールアドレスへ転送してしまう、という案。MAPIにはメールを送信するAPIがあったハズなので実現は可能でしょう。 まだ試してみていないのですが、転送する際にどうしても変わってしまうヘッダについて許容できるのであれば、これはありなんじゃないかと思っています。 次点として、これは実現可能かどうかわかりませんが、特定のフォルダ以下にあるメールを全て添付させて別のメールアドレスに送ってしまう、という案も考えられます。 こっちのほうがメールサーバにはやさしいかもしれません。
ちょっと別のアプローチとして考えられるのが、\Windows\Messageing以下をバックアップしちゃえばいいんじゃない?という案。 こいつをバックアップ&リストアして、ちゃんとtmail.exeで読めるメールになるかどうかはわかりませんが。なんかうまくいかないような報告があったよーな記憶があるんですがもう覚えていないようです。 まぁ一応、テキストな形式でメールデータがありますから、読もうと思えばなんとか読めますしね。
つか、標準のバックアップツール使えばいいんじゃね?とか思ったんですけどなんだか評判もよくないようで私も使ったことないんですよね。。。
とまぁ、こんな感じで考えていたりします。 メールバックアップのための転送ソフト、というのは作ってみる価値はあるかもしれませんね。 まぁオンラインサインアップで別アドレスに転送すりゃいいんじゃないって話もありますが、過去メールを救済する意味では役に立つ場面もあるでしょうしね。
>shownoreadオプションのデフォルトでは1とする。<br>0では?<br>開けてからシマッタ!では困るメールもあると思われ。<br>自己責任で1にすればいいかと。
ちょっと趣旨はかわってしまいそうですが、メールをここまでいじれるってことで、メールのバックアップ(エクスポート?)とかの機能もつくといいなぁ・・とかかんとか。。<br>なかなかウィルコムメールをバックアップするいい方法がなくて・・
GSFinderを使ってないからショートカットのパラメータを設定出来ない!って人がいましたw<br>でもiniは抵抗なく書き換えてたwのでiniの設定でOKだと思います。<br>デフォルトは今まで通り未読メール表示無しの方がいいかな?<br>毎回振分ける必要がないので、ディレクトリ表示・未読メール表示は軽いkickmail。<br>未読メールチェック終わったらwmfで整理って感じで使ったりしてます。
Send送受信キボン<br>いえ、手動送受信した時っ接続を切ってくれればと思いましたけど、技術的に他のことみたいですね、すいません。
くは!ご検討中でしたか。
\Windows\Messageing以下をバックアップする方法は私も試したことがあります。結果としてはダメでした。<br>どうも、メッセージ本体とは別にどこかにインデックスみたいなものを持っているような感じです。
ActiveSync中かどうかは、お手軽に調べるなら、レジストリの HKEY_LOCAL_MACHINE\System\State\Hardware 下にあるDWORD値 Cradled を見ればよさそうです(試してみた限りでは、通常は0、ActiveSync中は1になるみたい)。きっちりやるなら、なんかのAPI呼ぶべきでしょうけど。<br>ついでに、同じところの Wifi は無線LANの状態を反映してるみたい。
pdxメールのバックアップ、謎が多いです。<br>現在はSpriteBackup5.0を使用して、Emailデータベース<br>と、\Windwow\System下ディレクトリすべてをリストアす<br>ることで完全初期化から部分リストアを使って、pdxメー<br>ルを戻すことに成功しています。<br>ただし、SpriteBackupってブートストラップでなんか読む<br>前にバックアップおよびリストアを行っているので、<br>cemailDBはOS通常起動時にはバックアップできるか分かり<br>ません。<br>不確かな情報ですが、ご参考までに。