Featured image of post アウトルックのフィルタを共有したい。(Outlook Classicでごり押ししようぜ)

アウトルックのフィルタを共有したい。(Outlook Classicでごり押ししようぜ)

皆さん普段なんのメーラー使われているでしょうか。
私個人の話をすればThunderbirdをずっと使っているものですから、当然それが一番しっくりくるんですが。環境がそれを許さない場合があるものでして。

今回はOutlookの振り分けルールをごり押しでエクスポートしたお話。

背景

ごり押しでいろいろOutlookのフィルターを設定していました。
メーリングリストから飛んでくるメールの量がすさまじいもので。
ルールの数としては40くらいはあったかと思います。
それを別の人(Exchange Online)に何とかして渡したかった。
でも、相手はOutlookOnlineしか使えないので、Classicでのデータ移行はできなかった。なので、スクショを渡していたのだけれども、あまりにも効率が悪い、、、

ということで、rwzのファイルを解析して、テキストか、あるいは人間が状態を把握できるようにしてみようという経緯でございます。

前提条件

  • ライセンスがOutlook(Desktop)を使えること。 -具体的にはBussines Standardなど。
  • (エクスポートする側が)Outlook Classicが使えること。

GitHub

終わりの小話

いやはや。ChatGPTすごいっすよね。このツールに限っていえば、rwzのファイルをわたして、解析してっていってほっといたらこれだけのものができるんですから。途中、ペアプログラミングさせてみたいなって思ってcopilotのClaudeと交互にレビューとかさせてみた。面白い。

ChatGPT出力メモ

Outlook RWZ 解析ツールを作ってみた話

— ルールエクスポート(.rwz)を、実務で使える形で可視化する —

背景

Outlook のメール仕訳ルールを .rwz でエクスポートしても、そのままでは中身を読みづらく、監査・移行・棚卸しがしづらい課題があります。
このツールは、.rwz を解析して 人間が読める形式(JSON/YAML/CSV) で出力するためのローカル解析基盤です。

特に、以下のような場面を想定しています。

  • ルールの棚卸し(誰向け、どの条件、どこへ振り分け)
  • 運用引き継ぎ時の可視化
  • 大量ルール環境での構造調査
  • 将来的なフォーマット解読・再構築のベース作り

使い方(最短)

1. 環境構築
1
./scripts/setup_venv.sh

または PowerShell:

1
pwsh .\scripts\setup_venv.ps1
2. 実行
1
pwsh .\run.ps1

必要に応じて:

  • -Deep : 圧縮候補などの追加スキャン
  • -Phase2 : 深掘り解析(構造推定)
  • -UseOcr : OCR補助を使う(最終成果物には含めない方針)
3. 出力確認

最終成果物は output/ に出ます。

  • out_rules.csv
  • out_rules.json
  • out_rules.yaml
  • out_unified.csv

簡単な仕組み

このツールは大きく3層です。

  1. ルール抽出層(Phase1)
    .rwz から文字列・メールアドレス・キーワードを抽出し、ルール単位に要約。

  2. 構造解析層(Phase2)
    バイナリ構造(固定長ブロック、ポインタ、サイズフィールド、ギャップ)を分析して、
    「どこに何が格納されているか」を推定。

  3. 出力整形層
    JSON/YAML/CSVに整形し、運用・レビューしやすい形で保存。


技術的なポイント

  • UTF-16 / ASCII 抽出をベースにルール情報を復元
  • オフセット追跡で構造の位置関係を維持
  • ギャップ分析で未解析領域を確認
  • ポインタ/サイズフィールド分析でブロック内の意味を推定
  • OCRは補助のみ(最終成果物に混ぜない)で、誤認識リスクを分離

応用方法

1. ルール監査・棚卸し

out_rules.json を読み、条件・送信者・振り分け先を監査向けに再集計可能。
たとえば「外部送信者由来の振り分けルール」だけ抽出など。

2. ルール移行前チェック

旧環境と新環境の out_rules.json を diff して、
不足ルールや条件差分を機械的に検出できます。

3. セキュリティ運用

機密性の高いルール(特定ドメイン、特定件名条件)をCSVで一覧化し、
定期レビューの対象として使えます。

4. 逆解析の継続

reports/phase2 の深掘り結果を土台に、
将来的に「RWZのより完全なデコーダ」へ発展させることができます。


設計上の注意(実運用向け)

  • .rwz や解析結果には機密情報が含まれるため、
    inputs/ output/ reports/ carve/ は Git 除外にしています。
  • 公開用と運用用で、出力内容を分離するのが安全です。
  • 解析値には 事実(観測)と推測(解釈) が混在するため、
    ドキュメントでは明示的に区分する方針を推奨します。

まとめ

.rwz はそのままだと扱いづらいですが、
「抽出」「構造化」「可読化」の3段で進めると、実務に使える情報へ変換できます。

このツールは、単なるダンプではなく、
運用・監査・移行・逆解析をつなぐ実践的な土台として設計しています。

特に記載のない限り、このサイトのコンテンツは CC BY-NC-SA 4.0 の下で提供されています。ライセンス詳細
Hugo で構築されています。
テーマ StackJimmy によって設計されています。