W-zero3メールへの異常な愛憎
または私は如何にして立腹するのを止めてQMAIL3を愛するようになったか

まずは喜びの声

Willcom03 の駄目メーラーに引導を渡すことが出来ました。
製品の大幅な改善に寄与でき、一技術者として感無量です。

現状

やること

メーラーをW-Zero3から QMAIL3 に置き換えます。

また、送受信したメールをPCでも受信できるようにします。
その他、QMAIL3の設定についても記述しました。


メール自動受信

メールの自動受信に使われる ttmail.exe には、以下の問題があります。

本ページでは、これらの問題に対処します。

原理(メール自動受信)

メール自動受信の処理は、ステータスと呼ばれるレジストリ値に関連しています(参考:「Zero3をちょい研究!ブログ」「楽園オーバードライブ」)

よって上記のレジストリを監視し、値が 1 や 5 となったときにメールを受信させれば ttmail を置き換えることが可能です。
なお蛇足ですが、旧機種のステータスレジストリを間違って作ってしまうと ttmail.exe はこちらを見てしまいますので、自動メール受信が全くできなくなります。

原理(メール受信音消去)

「カコン」という音はステータスのレジストリ値を戻すタイミングで鳴るため、その前後にマナーモード制御処理を入れてやります。

ちなみに ttmail.ini の設定で ResetStatus15=1 とするとレジストリ値を -1 に戻してからプログラムを動かすため、消音出来ません。受信後にレジストリ値を戻すことも出来そうですが、未確認です。

方針(メール自動受信)

ttmailは使わず、ssipa 氏謹製の cmdRegistryNotifyAppと、cmdRegistryNotifyAppを使いやすくするMortScript を使います。このソフトは、レジストリの値が変更されたときに指定されたプログラムを実行するよう OS に登録します。

実際に実行する内容は以下の通り。これを MortScript で記述します。

方針(メール受信音消去)

レジストリの値を変えることでマナーモード制御が出来るという記述もありますが、実際に試したところ動作しなかったので SetManner.exe を使いました。

方法

それぞれ、\Program Files\qmail3-add\recvmail.mscr と \Program Files\cmdRegistryNotifyApp に置く設計となっています。

他に必要なソフトは以下の通り。

残件

メール受信がエラーとなった場合に、再度受信をさせる方法をどうするか。
これが出来ないと地下鉄とかで鬱陶しいんですよね。

おまけ

他にもさまざまなイベントをレジストリ経由で拾えますので、結構遊べそうですよ。

たとえば、HKEY_LOCAL_MACHINE\System\State\Connections\Count の値が 1 以上なら何らかの手段でネットにつながっているとか。


未読数の表示制御

Status 検知から受信、未読数管理までの流れはいくつかの選択肢がありますので、簡単に纏めてみました。DearQmail3(fetchQmail)については未調査です。

tmail+onQmail3
Status検知→tmailのCore.exeで未読数(LED)制御→q3u.exeで受信→新着振り分けのマクロから未読数をファイルに書き出し→常駐しているonQmail3で未読数(レジストリ)制御
設定方法の解説が充実しています()が、 設定が面倒なのと、LEDが付いてからqmailが起動すること、MP3鳴り分け機能が不要なので止めました。
runq3u
Status検知→runq3u.mscr→q3u.exeの巡回設定で受信させつつwtcq3u.mscrを常駐させて未読数制御
自動受信以外では未読数制御を行いません(マクロを追加すれば可能)。qmail3のログを強制書き換えする処理が重いので使いませんでしたが、MortScriptで書かれているので参考になりました。
qmail3helper
Status検知→q3u.exeの巡回設定で受信→新着振り分けのマクロから未読数をファイルに書き出してqmail3.mscrを呼び、未読数制御
プレビューの設定で「x秒待ってから既読にする」ようにしていると未読数制御ができません(-1に設定します)。

自動/手動受信のどちらでも未読数管理が出来ること、MortScriptで動作を自由に記述できること、 常駐しないことの三点が決め手となったので qmail3helper を選択しました。
バイブとマナーモード検知を togglebtpan から、LEDや未読数のレジストリ処理をrunq3uから取ってきてサンコイチにします。

qmail3helper 改造版をダウンロード
メール未読数を0にするスクリプトを追加しています。


送受信したメールをPCでも受信

2008-11-05 および 2008-12-07 の日記を参照してください。

その他、QMAIL3の設定

最初に気をつけること

アカウント作成時にメッセージボックスを「1ファイル」、ブロックサイズをメール/インデックス共に1MBにします。
いったん QMAIL3 を終了させたら今度はaccount.xmlをエディタでひらき、Globalセクションに

<key name="IndexMaxSize">1</key>
という1行を加えることで、インデックスファイルを1つに制限します。

その他の設定については、2008-12-02の日記を参照ください。