<Outlook Express 6.0 仕分けルール修正フォーム>
※ 使い方はフォームの下にあります。
<このプログラムについて>
Outlook Express には、メールをメッセージルールによって仕分ける機能があります。
しかし、仕分けルールが大量にある場合、画面から修正するのは少し面倒です。

何か方法はないかと調べてみたところ、レジストリを修正すればなんとかなりそうです。
このプログラムは、このレジストリデータを手軽に作成・修正するためのツールです。

実際には、フォームに入力した文字列を 16 進数文字列(レジストリ形式)に変換したり、
その逆を行ったりします。

あまりテストしていないので致命的なバグがある可能性があります。
実際にレジストリを更新する場合は、必ず「バックアップ」を取ってから行うように
してください。

<使い方>
1. Outlook Express を終了しておきます。

2. レジストリキーから修正したいルールをエクスポートします。
   例)
   HKEY_CURRENT_USER\Identities\{xxxx}\Software\Microsoft\Outlook Express\5.0\Rules\Mail\xxx\Criteria\xxx
   
   <ルールの場所に関する情報>
   ■ @IT:Windows TIPS -- Tips:Outlook Expressのメッセージ・ルールをバックアップする方法
   http://www.atmarkit.co.jp/fwin2k/win2ktips/240oemrbkup/oemrbkup.html

3. エクスポートしたレジストリをメモ帳などで開きます。

例えば「件名に "http://www.foo.com/" または "http://www.bar.com/" を含む場合」という
ルールがあった場合、レジストリの内容は、以下のようになります。

-----------------------------------------------------------------
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Identities\{xxxx}\Software\Microsoft\Outlook Express\5.0\Rules\Mail\xxx\Criteria\xxx]
"Type"=dword:00000008
"Logic"=dword:00000000
"Flags"=dword:00000000
"ValueType"=dword:00000041
"Value"=hex:68,74,74,70,3a,2f,2f,77,77,77,2e,66,6f,6f,2e,63,6f,6d,2f,00,68,74,\
  74,70,3a,2f,2f,77,77,77,2e,62,61,72,2e,63,6f,6d,2f,00,00,00
-----------------------------------------------------------------

4. 上のフォームに追加したい語句を入力し「変換」ボタンを押下します。
   
   例)
   <変換元>
   http://www.foo.com/
   http://www.bar.com/
   http://www.hoge.com/
   
   <変換先>
   68,74,74,70,3a,2f,2f,77,77,77,2e,66,6f,6f,2e,63,6f,6d,2f,00,\
   68,74,74,70,3a,2f,2f,77,77,77,2e,62,61,72,2e,63,6f,6d,2f,00,\
   68,74,74,70,3a,2f,2f,77,77,77,2e,68,6f,67,65,2e,63,6f,6d,2f,00,\
   00,00

   変換が正常に行われると、下のフォームに変換された 16 進数文字列(レジストリ形式)が表示されます。

5. レジストリファイルを更新します。
   
   4. で作成した 16 進数文字列(レジストリ形式)を「"Value"=hex:〜」のところに貼り付けます。
   例)
   "Value"=hex:68,74,74,70,3a,2f,2f,77,77,77,2e,66,6f,6f,2e,63,6f,6d,2f,00,\
   68,74,74,70,3a,2f,2f,77,77,77,2e,62,61,72,2e,63,6f,6d,2f,00,\
   68,74,74,70,3a,2f,2f,77,77,77,2e,68,6f,67,65,2e,63,6f,6d,2f,00,\
   00,00
   
   このレジストリを登録し、Outlook Express を再度起動すればルールが更新されると思います。
   
   ※ かなり強引な変更方法ですので利用する場合には、必ずレジストリのバックアップを
      取っておいてから行ってください。レジストリの更新ミスによる不具合は補償しかねます。

5. 「逆変換」ボタンは 16 進数文字列(レジストリ形式)を変換元の文字列に戻します。

<レジストリの詳細>
レジストリの意味は、http://faqoe.com/rep/dr.htm (フランス語)によると、

"Type" … ルールの条件の種別
           dword:00000008 … 件名
           dword:00000009 … 本文
           dword:0000000a … あて先
           dword:0000000b … CC
           dword:0000000c … 送信元

"Flags" … ルールの条件の詳細
           dword:00000000 … 文字列を含む場合 + または(or 条件)
           dword:00000001 … 文字列を含まない + または(or 条件)
           dword:00000002 … 文字列を含む場合 + および(and 条件)
           dword:00000003 … 文字列を含まない + および(and 条件)

"ValueType" … データの種別
           dword:00000041 … 文字列

"Value" … データ:文字列の場合、文字列+'\0', 文字列+'\0', ... , '\0\0'
           
           例)
           1件目:"http://www.foo.com/" → 68,74,74,70,3a,2f,2f,77,77,77,2e,66,6f,6f,2e,63,6f,6d,2f,00
           2件目:"http://www.bar.com/" → 68,74,74,70,3a,2f,2f,77,77,77,2e,62,61,72,2e,63,6f,6d,2f,00
           データの終わり                → 00,00

という感じになるようです。

したがって「"Value"=hex:〜」の値を修正することによって、
メッセージルールを修正できることになります。

<参考情報>
■ @IT:Windows TIPS -- Tips:Outlook Expressのメッセージ・ルールをバックアップする方法
http://www.atmarkit.co.jp/fwin2k/win2ktips/240oemrbkup/oemrbkup.html
■ S1のページ: Outlook Expressのメッセージルールをいじる
http://www.rsi.gr.jp/s1/archives/000385.html
■ レジストリの解説(フランス語)
http://faqoe.com/rep/dr.htm

<動作確認環境>
PC1 : Windows XP Pro SP2 + Internet Explorer 6.0 + Outlook Express 6.0
PC2 : Windows 2000 SP4 + Internet Explorer 6.0 + Outlook Express 6.0