私は1994年のバージョン0.91の頃から会社内でWinbiffを使っているの ですが(たぶん、私の勤務する会社に最初に持ち込んだ?)この度めでたく 会社のメールシステムが憎きMSのOutlookへ移行せざるをえない状況になり、なんとかデータの 移行ができないか、いろいろ調べてきました。
最初は自分で変換プログラムを作るつもりだったのですが、Outlookの メールフォルダのファイルフォーマット仕様がどうにも見つからなく て、仕方なく既存のツールに頼ることにしました。いろいろ試してみました。ちょっと面倒くさいのですがこの方法がよ さそうです。(他に何かいい方法があったら教えてください)
- 必要なもの
- MailExp(メールデータ変換を行うフリーソフト)
- Outlook Express
- 作業の流れ
- MailExpを使ってWinbiffのメールフォルダを MS Internet Mail保存テキストに変換
- 変換・分割されたファイル群をOutlook Expressで任意のフォルダにドロップ
- Outlook上でインポート
- 準備
MailExpを以下のサイトからダウンロードして使えるようにしておきます。(インストーラ等はありません。)
http://www.digico-m.com/shin1/
(2003年2月24日追記) MailExpは「野元 真一」さん作のフリーソフトですが、既に開発は終了されているようです。(2005年3月24日追記) Internet Archiveに行って上記URLを入れると2003年2月10日あたりの状態に戻ってダウンロードできるようです。
Outlook Expressが入っていない場合は入れておく
Outlookのインポート機能はもしかしたらCDから追加インストールが必要かも?? (初めて使うときにインストールする設定の可能性あり)
- 実作業
- MailExpを起動して入力タブでWinbiffのメールディレクトリの中から変換 したいメールフォルダのファイルを選択
- MailExpの出力タブで、フィルタ形式に「MS Internet Mail保存テキスト」 を選択し、変換後のファイルを置くディレクトリを選択する。
Winbiffのメールフォルダは複数のメールが1つのファイルになっていますが変 換後の形式はメール1つ1つが別ファイルになりますので、専用のフォルダを作 成して、その中変換させるのがよいと思います。
また、オプション「EUCの本文の変換」は、えらく時間がかかるので、EUCコード で届いたメールがないと自信が持てるならチェックを外した方が断然処理が高速です。
- 設定を確認したら「変換+分割 開始」ボタンを押し変換スタート。
- 変換終了したら、Outlook Expressを起動。ローカルフォルダ内に変換し終 わったファイルを入れるために、フォルダを1つ新規作成し、そのフォルダを開 く。「このビューにはアイテムがありません」と出ると思うので、エクスプロー ラで先ほど変換終了したファイル群を全部選択して、このビューへドロップしま す。しばらくするとOutlook Expressのメールフォルダとして変換され表示でき るようになります。
- 今度はOutlook上でファイル→インポートとエクスポートを実行。 「インターネットメールやアドレスをインポート」を選択して「次へ」。
「Outlook Express 4.x, 5」を選択して「メールのインポート」のみチェックさ れた状態で、「終了」
- これでOutlook Express上のフォルダ名と同じフォルダがOutlook側にイン ポートされます。
以上で完了です。
- おまけ
基本的には上の方法でOKなのですが、困ったことにWinbiffのOutboxを変 換したらOutlook上で受信日時が ? となってしまいました。
これはおそらくWinbiff側で「自分宛にCc(またはBcc)」ではなく「送信 メールをOutboxに保管」を使っている場合に起こる症状です。
Outlookで言う受信時間とは、インターネットメールのDate:ヘッダではな く最後のReceived:ヘッダを見ているようです。(ちなみにWinbiffはDate を使っている)Winbiff側でOutboxに保管させていた場合、このメールデー タはサーバで受信されたものでないためReceivedヘッダは存在しません。
よってOutlookではReceivedがないから受信日時は?になるのだと想像しま す。ReceivedがなければDateを使ってくれればそれで済むのですが、そう なっていないところはさすがMSです。
さて、それじゃ困るのでDateを読んで偽のReceivedを付けるプログラムを作り、 それで処理した後にOutlook Expressへ持っていくようにしました。 これは大成功でした。(2003年1月15日追記)
これについては、どうも僕の誤解だったらしいです。 送信したメールなのだから受信日時がないのは当たり前で、Winbiffの ひらめーるをよくみれば「日時」としか書いてないのに気づきます。 たぶんひらめーる側でOutboxを見るときには特別扱いするよう面倒を見て いてくれているんでしょうね。
ではOutlookではどうしたらよいかというと「表示→現在のビュー→現在のビューの編集」 のメニューで「フィールド」を選択して「受信日時」を削除して「送信日時」 を追加すれば、上で書いているような偽のReceivedヘッダの追加は不要で した。
いろいろ試してみたんですけど、どうにもOutlookのアドレス帳にあたる 「連絡先」というやつがどうにもよくありませぬ。
配布リストというのを作ればアドレスをグループ化できて、一応配布リス ト自体も階層化できるようなんだけど、データ形式とかの仕様が見つから ないため、どう変換していいかわかりません。
フリーソフトとかでも見つけられませんでした。
そこでちょっと考えまして、アプローチを変えることにしました。
「Winbiffのアドレス帳をそのまま使う」方法です。
Outlookの「連絡先」に変換せずに、Winbiffのアドレス帳のまま使おうと いう発想です。これならOutlookの連絡先に勝手にメールを送りつけるウ ィルスの類が出てきても被害は少なそうな感じもするし。
というわけで、自作してしまいました。最初はPython言語だけを使って Winbiffのアドレス帳データを読みとり、COMでOutlookに語りかけるもの を作りました。GUIにはTcl/Tkを使いました。
これはこれで充分使い物になるのですが、仮に人に使っていただくことを 考えると、Pythonのセットアップが必要になって、ちょっと面倒です。
一度はPython + Delphiを使う方法で作り始めて、かなりできたのですが、これ にしてもPythonのライブラリなどでファイルがたくさん必要です。
できればバイナリ1個ですませられた方がよろしい。
ここで一念奮起して、Delphi1本で作ることに方針変更。
Outlookとの接続はわりと簡単にできたのですが、テキスト処理はPython の方が全然楽なので、Delphi(Pascal言語)に直すのに苦労しましたが、 なんとかできました。
というわけで公開します。
現時点でバージョン0.9とします。(基準不明)
(2003年1月9日追記)
ちょっとだけ変わって0.91とします。 READMEファイルも付けてzip圧縮しました。
(2003年1月20日追記)
ちょっと見栄えがよくなって0.92とします。
(2003年1月22日追記)
0.93で、またちょっと見栄えがよくなって、さらに右側のリストでのグループのダブルクリックに対応しました。
(2003年2月7日追記)
0.94を作りました。「引用付き貼り付け」ボタンを追加しました。 クリップボードにテキストをコピーして置いた状態で、このボタンを押すとクリップボード内のテキストを各行頭に引用符 '> ' を付けたものに置き換えます。 その状態で目的のウィンドウでペーストすれば Winbiff のメール作成の「引用付き貼り付け」と同じようなことができます。
(2003年2月24日追記)
引用付き貼り付けサポート機能に「クリップボード上のテキストの最終行が改行で終わっていない場合に、最後の行が消えてしまう」というバグを見つけたので、これを修正するついでに引用マークを自分で設定できるように変更しました。 また数ヶ所にヒント情報を出すようにしたり、若干の画面デザイン変更を行いました。 これをバージョン0.95とします。
(2003年7月23日追記)
Winbiffのアドレス帳でひとつのニックネームに複数アドレスを設定していた場合にひとつだけしか読めていなかった点を修正しました。 右側のリスト上で右クリックすると該当するニックネームのプロパティを表示する要変更しました。 バージョン0.96とします。
(2005年3月24日追記)
とある方からのご要望により、1年8ヶ月ぶりに新バージョンを作りました。
グループ内のリスト表示の2番目の項目をメールアドレスとメモのどちらかを選択できるようにしました。 この機能は ol_wb2adrs.ini ファイルの List2ndItem フィールドに ADDRESS または MEMO と書き込むことにより利用できます。
またメールアドレスの貼付時にメールアドレスだけか表示されている名前も入れるかを選択できるようにしました。 この機能は ol_wb2adrs.ini ファイルの MailAddressOnly フィールドに YES または NO と書き込むことにより利用できます。
どちらの設定値も現在GUIによる設定はできません。 バージョン0.97とします。
(2005年3月31日追記)
ウィンドウの大きさが変更されたときにツリービューとリストビューの大きさをあわせて変更するようにしました。 バージョン0.98とします。
(2009年4月15日追記)
またまたとある方からのご要望により、なんと4年ぶり!に新しい版を作りました。 残念ながらいただいたご要望の1/3しか達成できませんでしたが、これまでのTOとCCに加えてBCCにも対応しました。 またウィンドウの出現位置を ol_wb2adrs.ini ファイルに記憶するようにしました。 たいした機能アップでもないので、バージョン0.98aとします。
(2009年4月27日追記)
先の方よりいただいていたご要望のもう一点、アドレスの追加機能を使うことができるようにしました。
これまではメールアドレスの貼り付け時に上書きしかできませんでしたが、今バージョンでは既に記入されているアドレスに対して選択したアドレスを追加することができるようになります。 ただしこの機能は設定を行わないと使えないようにしてあります。
その理由は、これを設定するとアドレス貼り付け時にOutlookがいちいち警告してくるようになってしまうためです。
現在のアドレスに対してアドレスを追加するためには現在設定されているアドレスをOutlookより取得する必要があります。これを行うとOutlookが警告ダイアログを出し、ユーザに許可か拒否かを聞いてきます。 許可する場合には、その後最大10分間は再び警告を出すことなしなくなりますが、その時間が過ぎればまた警告を出します。
これはたしかOffice 2000 XP3あたりから実装されたOfficeのセキュリティ機能なのですが、この警告ダイアログを出さなくする方法はありません。 私はこの警告ダイアログが鬱陶しくてとても嫌いなため、これまで拙作にアドレスに追加機能を実装していませんでしたが、今バージョンでは、この機能を使う/使わないをユーザが選択できるようにしました。 ol_wb2adrs.ini ファイル内に UseAppendMode というキーワードがあり、この行を YES とすることによってアドレス追加機能が使えるようになります。 下記.zipファイルに同梱の同ファイルでは NO としておりますので、アドレス追加機能が使いたい方は YES と書き直してください。
また公開はしませんでしたが、0.98b版にて実装したウィンドウサイズの記憶機能も本版に含まれております。ウィンドウの大きさを変更していると終了時に ol_wb2adrs.ini ファイルに大きさを記録しますので次回起動時には前回終了時のサイズで立ち上がります。 もしもサイズ設定をリセットしたい場合には ol_wb2adrs.ini ファイル内の WindowSize というキーワードの行自体を削除してください。次回起動時にデフォルトのサイズで立ち上がります。 なお ol_wb2adrs.ini ファイルの修正は、本ソフトを終了しているときに行ってください。
本版をバージョン0.99とします。
ol_wb2adrs_099.zip (238,461 バイト)のダウンロード
(McAfee定義ファイル 5597でウイルススキャン済み)
実行したら、こんなウインドウが出てきます。
画面はバージョン0.96のものです。 バージョンによって若干の画面デザインの違いがあります。
「メールフォルダ」の部分にWinbiffで使っていたメールフォルダを指定 してください。(card.datとgroup.datのあるフォルダです) フォルダを指定したら「アドレス帳読み込み」を実行します。
左側のリストで表示するグループを選びますと右側のリストにそのグルー プ内のリストが表示されます。
必ず右側のリストで送りたい人(あるいはグループ)を選択して「宛先」へ または「CC」へボタンを押してください。
複数選択を行うにはCtrlキーを押しながらクリックします。
(現時点で、ダブルクリックには何の応答もしません。)
(2003年1月22日追記)
0.93でダブルクリックに一部対応しました。
Outlookが起動している状態でないと何が起こるか不明です。
ちなみに ol_wb2adrs.exeと同じディレクトリに ol_wb2adrs.ini というファイルを 作り、以下のような1行を書いておくと起動時にメールフォルダが設定されます。
MailFolder: c:\Mail\futot