=====================================         Outlook ExpressのDBXファイルを参照するプログラム   OEview.exe Version 7.0 ===================================== ●概要 【ソフト名】 Outlook ExpressのDBXファイルを参照するプログラム OEview 【登 録 名】 OEviewvr.ZIP 【バイト数】 xxx,xxxバイト 【著作権者】 A.Shimada(島田明雄) 【対応環境】 Windows 98, 2000, XP, Vista 日本語版 【動作確認】 Endeavor NT7100Pro(Windows XP Pro SP2 + Outlook Express)        Endeavor NT5100Pro(Windows Vista Ultimate + Windowsメール) 【必要 DLL】 なし 【開発言語】 Delphi2007 【更 新 日】 2007/12/1 【種 別】 フリーソフトウェア 【サポート】 メールにて 【転載条件】 転載を希望される方は、事前に私宛にメールをください。 ●機能  Outlook Expressは拡張子dbxのファイルにメール及びニュースのデータを記録しま  す。DBXファイルはOutlook Expressのフォルダごとに作られます。本プログラムは  DBXファイル内のメッセージ(ここではメールとニュースを総称してメッセージと  呼ぶことにします)に対して次のようなことができます。  (1)DBXファイル内のメッセージの一覧を表示する。  (2)選択したメッセージをOutlook Express又はWindowsメールで開く。  (3)選択したメッセージをエディタで開く。  (4)選択したメッセージをeml又はnwsファイルに取り出す。  (5)DBXファイル内のメッセージを検索する。フォルダ内の複数ファイルも可能。   複数文字列のAND/OR検索、除外文字列検索、絞込み検索が可能。  (6)DBXファイル内のMessage-IDが重複したメッセージを一覧にする。  (7)DBXファイル内のメッセージのリストを作成する。  (8)フォルダ内のMessage-IDが重複したメッセージのリストを作成する。  (9)フォルダ内のDBXファイルのヘルスチェックを行う。  (10)DBXファイル内の削除ブロックを取り出す。  例えばバックアップしたDBXファイルをインポートすることなくメールを検索し、  Outlook Express又はVista Windowsメールで開けます。  本プログラムを作成した動機は(6)(8)です。クライアントの不調で同じメッセー  ジを何度も取り込んでしまった場合や、誤って不要なコピーを作成してしまった場  合などに重複を確認するのに役立ちます。  (4)ではメッセージをemlファイル又はnwsファイルに取り出します。添付ファイル   を除いてメッセージの本文だけ取り出すこともできます。  (7)ではファイル内のメッセージのリストをCSVファイルに出力します。Excelなど   で入力して一覧を作成できます。  (9)ではDBXファイルのサイズ、メッセージ数、削除ブロック数をリストし、上限を  オーバした項目にマークを付けます。フォルダを細分化すべきか、最適化をすべき  かの目安にできます。  (10)では削除してしまったメッセージを取り出します。仕組み上完全ではありま  せんがテキストを読めるかもしれません。  なお、オプションで送信者のメールアドレスをアドレス帳の表示名に置き換えて表  示できます。  また、本プログラムはDBXファイルの参照しかできません。DBXファイルを変更した  い場合は一旦メッセージを取り出し、別掲のemlCheck.exeで操作してからドラッグ  &ドロップでOutlook Expressに戻すようにします。  Version7.0でWindows Vistaに対応しました。XP以前で保存したDBXファイルを検索  し、Windowsメールで開けます。また、送信者のメールアドレスをVistaのアドレス  帳の表示名に置き換えて表示できます。 ●配布ファイル  OEview.EXE プログラム本体  README.TXT このファイル ●インストール  ダウンロードしたファイルOEviewvr.ZIPを解凍し、専用のフォルダを作って  OEview.exeを入れて下さい。必ずしも専用フォルダでなくてもかまいません。なお  起動時に「発行元を確認できませんでした…」というメッセージが出たときは、  OEview.exeを右クリックしてプロパティ画面を出し「ブロックの解除」ボタンを押  して下さい。 ●アンインストール  OEview.EXEと設定ファイルのOEview.iniを削除して下さい。レジストリは変更して  いません。  Version6.0以降、OEview.iniは下記のフォルダ内に移動しました。完全にアンイン  ストールする場合はOEviewフォルダごと削除して下さい。  WindowsVistaの場合 :Users\ユーザ名\AppData\Local\SHIMAPEE\OEview  Windows2000,XPの場合 :Documents and Settings\ユーザ名\Local Settings\              Application Data\SHIMAPEE\OEview  Windows98の場合 :Windows\Local Settings\Application Data\SHIMAPEE\OEview ●使用方法  (1)メニュー[ファイル]-[DBXファイルを開く]でDBXファイルを選択します。初めて   の起動時はOutlook Expressデフォルトユーザのメニュー[ツール]-[オプション]   のメンテナンスタブで指定した保存フォルダを開きます。なお、Vistaの場合は不   定です。保存したメディアのDBXファイルを選択して下さい。   一旦DBXファイルを開いた後は、同じフォルダ内にFolders.dbxが存在する場合、   メニュー[ファイル]-[フォルダ一覧を開く]でDBXファイルをツリー表示して選択   できます。Folders.dbxはDBXファイルのインデクスで、通常は存在します。  (2)メッセージを選択してメニュー[編集]-[メッセージを開く]、[エディタで開く]、   [取り出し]を実行します。なお「メッセージを開く」、「エディタで開く」は   メッセージを一つだけ選択して行なって下さい。  (3)メニュー[編集]-[検索]でメッセージを検索できます。検索項目のヒストリ機能   があります。また、検索結果から絞込み検索ができます。   入力フィールドに複数の文字列を並べた場合、AND検索になります。文字列の間に   "OR"を指定するとOR検索になります。文字列の前に"-"を指定すると除外文字列に   なります。引用符で囲むと空白を含められます。   (例)Delphi キャンペーン  両方の文字列を含む    (例)無料 or 無償      無料、又は無償を含む   (例)Works -Workstation   Worksを含むが、Workstationを含まない   (例)"SHIMAPEE's ToyBox"  文字列の間の空白も含む   使用上のヒントと注意事項がありますのでご覧下さい。  (4)メニュー[表示]-[重複メッセージ]で重複したメッセージを表示します。  (5)メニュー[ツール]-[オプション]でメッセージを開くエディタ、ヘルスチェック   の上限値などを指定します。送信者のメールアドレスをアドレス帳の表示名に置   き換えて表示する指定があります。  (6)メニュー[ツール]-[リストの作成]で表示中のメッセージのリストをCSVファイル   に出力します。  (7)メニュー[ツール]-[重複リストの作成]でフォルダ内の全てのメールのDBXファイ   ルを入力し、重複したメッセージのリストをCSVファイルに出力します。  (8)メニュー[ツール]-[ヘルスチェック]でフォルダ内の全てのメールのDBXファイル   を入力し、サイズ、メッセージ数、削除ブロック数のリストをCSVファイルに出力   します。上限値を超えた項目の前にはマークが付きます。  (9)メニュー[ツール]-[削除ブロックの取り出し]でDBXファイル中の削除ブロックを   取り出します。削除ブロックは一部が飛び飛びに壊れていますので完全ではなく   添付ファイルは使えませんが本文を読めるかもしれません。注意事項をご覧下さ   い。   emlファイルに分割するか、一つのtxtファイルにするか選べます。   emlファイルに分割した場合、出力された「フォルダ名_nnn.eml」のファイルを   Outlook Expressの適当なフォルダにドラッグ&ドロップすることにより、件名、   本文などが見える可能性があります。   一つのtxtファイルにした場合、出力された「フォルダ名.txt」のファイルを   JISコードが扱えるエディタで開くことにより本文が見える可能性があります。 (10)DBXファイルの排他制御を入れ直しました。本プログラムは書き込みしません   のでファイルを壊すことはありませんが、Outlook Express又は他のDBXファイル   を参照するプログラムは終了させておいて下さい。 ●使用上のヒント  (1)アイコンにより、メール、ニュース、未ダウンロードニュースを識別できます。   添付ファイルがある場合、サイズ欄にマークが付きます。  (2)オプションで送信者のメールアドレスをアドレス帳の表示名に置き換えて表示   できます。  (3)メニュー下に表示される大きな文字のDBXファイル名をクリックする、あるいは   BackSpaceキーを押すことでもDBXファイルをツリー表示できます。  (4)メッセージを右クリックすることでも操作メニューを表示できます。  (5)メッセージを一つ選択してEnterキーを押すことでもメッセージを開けます。  (6)取り出しの際、ファイル名が重複する場合に自動的に順序番号を付けることが   できます。ファイル名の後ろに_nnnnを付けます。   (例)こんにちわ.eml こんにちわ_0001.eml こんにちわ_0002.eml  (7)取り出したファイルの作成日時、アクセス日時、更新日時をメッセージの受信   日時にできます。  (8)検索について   【Outlook ExpressのHTMLメールは正しく検索できますが、HTMLしかないメールの    検索は不完全です(本家Outlook Expressと同等)。注意事項をご覧下さい。】  ・入力フィールドの指定、日付の範囲の指定、添付ファイル付きの指定が全て一致   するメッセージを検索します。本家Outlook Expressも同様ですが、メッセージ   本文の検索だけを指定すると時間がかかります。なるべく他の条件で絞り込むこ   とをお奨めします。  ・英大文字と小文字は区別しません。なお、1バイトコードと2バイトコードは区別   します。  ・文字列の区切りは、1バイト空白、2バイト空白、又は1バイトカンマです。これら   の文字を含めた文字列を検索したい場合は二重引用符で囲んで下さい。二重引用   符を表現するには2個続けて下さい。  ・文字列と文字列の間に何もない場合は"AND"を仮定します。指定する場合、"and"   "&"、"and" 等を記述できます。"OR"は省略できません。"or"、"|"、"or"   等を記述して下さい。文字列かAND/ORの演算子かの解釈は出現順序によります。   例えば、OR OR AND と指定すると「文字列OR OR 文字列AND」と解釈します。  ・結果の評価は左から右に行っています。括弧で表記すると、   A OR B C は ((A or B) and C) です。A B OR C は ((A and B) or C) です。  ・"-"、又は"−"に続く文字列は除外文字列です。一つでも見つかった場合は   AND/ORにかかわらず検索結果から除外します。  ・除外文字列が見つからないときは条件成立となります。-A or B と指定した場   合、Aが見つからなければBの有無にかかわらずヒットします。  ・空白を含む文字列を除外するには、"-"を付けて二重引用符で囲んで下さい。  ・絞込み検索は検索結果のメッセージを検索します。全て検索し直すより速いかも   しれません。  ・検索結果から、メニュー又は右クリックで選択したメッセージが含まれるDBXファ   イルを開けます。  (9)ヒント表示が不要な場合はメニュー[ヘルプ]-[ヒントを表示する]でオフ/オン   できます。  (10)[削除ブロックの取り出し]メニューが有効にならない、あるいはヘルスチェッ   クで削除ブロック数が0のDBXファイルには削除ブロックがありません。最適化   をすべきかの目安にできます。  (11)拡張子dbxにOEview.exeを関連付ければ、DBXファイルをダブルクリックするこ   とで素早く起動できます。 ●注意事項  (1)サイズ欄はDBXファイルのインデクスの内容を表示しているため、必ずしも実体   と一致しません。特に未ダウンロードニュースのとき。  (2)Message-IDのないメッセージ(Outlook Expressの送信済みフォルダから移動し   たメッセージ等)は重複チェックの対象となりません。また、標準では   Message-IDに加え、送信者、件名、送信日時が一致するものを重複と見なします。  (3)メッセージ本文のみ取り出す際は二つ目のboundaryを最終とし、その下をカット   することにより行なっています。あなたの意図した結果になるかどうか、お試し   の上ご利用下さい。  (4)検索について  ・バージョン6.2で、boundaryがネストしている場合、一番内側の最初の部分を検   索するようにしました。Outlook ExpressのHTMLメールには上記の部分にテキス   トがあり、これでOutlook Expressのひな形を使ったHTMLメールも正しく検索で   きるようになりました。ただし、HTMLしか存在しないメールではHTMLが検索対象   になり、このため -HTML 等でHTMLタグ相当を除外するとヒットしなくなります   のでご注意下さい。本家Outlook ExpressもHTMLしか存在しないメールではHTML   が検索対象になるようです。  ・入力フィールドの文法エラーは出さず、なるべく適切に解釈して実行していま   す。例えば"-"のみの指定、右端のAND/OR演算子は無視します。  (5)削除ブロックについて  ・削除ブロックはリスト構造になっているため、性能上、ヘルスチェックの上限   値を超えた時点でカウントを止めています。すなわち上限値が1000のとき1001と   表示されている場合は、それ以上の削除ブロックがあることになります。  ・削除ブロックの先頭はポインタに使われてしまうため、残念ながら完全には取   り出しできません。508バイトごとにテキストが4バイト欠け、添付ファイルは   壊れてしまいます。欠けた部分は空白で補完しています。ただしemlファイルへ   の分割取り出しの際は、なるべく妥当なヘッダになるように補完しています。   例えば"rn-Path:"を"Return-Path:"に補完するなど。  ・削除ブロックのemlファイルへの分割取り出しでは、削除ブロック先頭の数行   のReturn-Path,Fromなどを区切りとしています。このため本文中に引用された   メールを分割してしまうことがあります。  (6)メールアドレスの変換でアドレス帳内に重複するメールアドレスがある場合、   文字コードの小さい方の表示名が現れます。  (7)DBXファイルの解析は不十分かもしれません。違っていたらご容赦。 ●プログラムの仕組みなど  (1)このプログラムで一番苦労しているのは本文の検索です。   Charsetは、"iso-2022-jp","shift_jis","shift-jis","utf-8","iso-8859-1",   "us-ascii","x-sjis","windows-1250"〜"windows-1258","euc-jp","koi8-r"を   考慮しています。 Encodingは、"7bit","8bit","base64","quoted-printable","binary"を考慮して   います。   不定の場合はCharset="iso-2022-jp"、Encoding="7bit"の処理を行っており、   JIS変換が不要かもしれないCharsetについて無駄はありますが、検索に問題はな   いようです。   本文の検索がうまくいかない場合は上記以外かもしれません。その場合はメニ   ュー[オプション]の「検索時に未サポートのCharsetとEncodingをチェックする」   をオンにしてみて下さい。未サポートのものがあった場合はエラーになります。   エラーメッセージをCtrl+Cキーでコピーして、CharsetとEncodingを私に教えて   頂ければ改善を検討致します。できましたらemlファイルを丸ごと送って頂ける   とありがたいです。  (2)削除ブロックの取り出しではリスト構造の逆順にブロックを連結しています。  (3)アドレス帳の入力は、私の技術力では歯が立ちませんでしたのでDelphiコンポー   ネントを購入してしまいました。これは安くて簡単です。   http://www.wab-component.com/    Astonsoft Ltd.社 Windows Address Book Processor  (4)Vistaの場合、Users\ユーザ名\Contactsフォルダ内にある全てのcontactファイ   ルのメールアドレスと表示名を参照します。一つの表示名に対し複数のメールア   ドレスが設定されている場合、その全てを参照します。 ●サポート  プログラムの最新版は本ドキュメント末尾のURL内にあります。  不具合等については本ドキュメント末尾の宛先にメール頂ければできるだけ対処  します。 ●免責  本プログラムの使用により生じた損害に関して作者に責任はないものとします。 ●転載  本プログラムの転載等は自由ですがメールにて連絡をお願い致します。 ●謝辞  Arne SchlohさんのWWWページでDBXファイルの形式を確認させて頂きました。  http://oedbx.aroh.de/index.html  エンコードには引用できない程たくさんの先人の例を参照させて頂いています。  GreenManさんに、検索機能のご要望を頂きました。  Starfishさんに、不具合の指摘と検索機能のヒントを頂きました。  モリタさんに、送信済みアイテムで宛先を表示する機能のご要望を頂きました。  吉田さん、山村さんに、不具合の指摘を頂きました。  ありがとうございます。 ●改訂歴  OEview.exeのバージョン番号はWindowsのプロパティで確認できます。  Version 7.0(2007/12/1)   Windows Vistaに対応しました。XP以前で保存したDBXファイルを検索し、Windows   メールで開けます。なお、アドレス帳(WAB)の代わりにContactsを読み込みます。   また、[受信トレイを開く]を無効にします。  Version 6.3(2007/8/12)   [DBXファイルを開く]ができないことがあったのを対策、ツリー表示を右クリッ   クすると異常終了することがあったのを対策、検索メッセージ取り出し時のDBX   ファイル名表示を訂正、など。  Version 6.2(2007/6/10) boundaryがネストしている場合、最初の部分を検索するようにした。複数文字列   のAND/OR検索で不当にヒットすることがあったのを対策。ツールバーサポート。   アドレス帳、Folders.dbx読み込みの性能向上、など。  Version 6.0(2007/5/6) 複数文字列のAND/OR検索、除外文字列検索、絞込み検索をサポート。これに伴い   クリアボタンは検索結果を残すようにした。検索結果のメッセージが含まれる   ファイルを開く機能のサポート。INIファイルをLocal Settings下に移動。アド   レス帳、Folders.dbx読み込み時の進捗表示 ヒント表示、など。  Version 5.3(2007/2/5)   送信関連のフォルダの場合送信日時を表示する、重複チェック表示が不正にな   ることがあったのを対策、重複チェックのアルゴリズムを変更、など。  Version 5.1(2007/1/14)   送信関連のフォルダの場合送信者でなく宛先を表示する、宛先表示名の検索が   できないことがあったのを対策、など。  Version 5.0(2006/10/22)   検索画面でメッセージリストの作成をサポート、取り出しファイル名重複時に   付加する順序番号を4桁にした、DBXファイル排他チェック、ファイル作成エラー   チェック、検索エラー対策、アイコンを作成、など。  Version 4.5(2006/9/30)   メッセージの重複チェック時、Message-IDに加え、送信者、件名、送信日時の   一致を確認するようにした。  Version 4.0(2006/6/11)   メールアドレスの表示名変換オプション、ファイル内のメッセージリストの作成   をサポートした。  Version 3.5(2006/4/4)   削除ブロックをemlファイルに分割して取り出せるようにした。  Version 3.1(2006/2/18)   ツールの実行結果をプログラムから開けるようにした。  Version 3.0(2006/2/10)   ヘルスチェック、削除ブロックの取り出しのサポート。その他数々の変更。  Version 1.9(2004/4/4)   ご要望があって検索をサポートし、お試し版で公開。  Version 1.3(2003/11/5)   フォルダ内のMessage-IDが重複したメッセージリストの作成、初めての起動時は   Outlook Expressの保存フォルダを開く、日時が壊れていた場合でも処理続行、   Debugログの分割出力、など。  Version 1.2(2003/4/27)   DBXファイルのツリー表示のサポート、ファイル排他をはずす、など。  Version 0.9(2003/1/20)   プログラム公開。  Version 0.5(2002/12/22)   作成。 ===================================== Copyright(C)2002,2007 A.Shimada(島田明雄) URL http://www.mars.dti.ne.jp/~a-smd/ E-Mail akio_dot_shimada@nifty.ne.jp(spam対策) SHIMAPEE(しまぴー) =====================================