Outlook 2013 で肥大化した古いメールを整理する一案は「CSVでバックアップして消す」

肥大化した古いメールがサイズ(.pst データファイルのサイズ)を圧迫しているため、消したい。でも、もしかしたら後で読む必要性が出てくるかもしれないので消せない……と悩んでいた。そこでバックアップしてから消すという方法を取ることにした。

全体手順

  • 古いメールは CSV 形式でエクスポート(バックアップ)する
  • エクスポート後、当該メール(の入ったフォルダを丸ごと)を削除する
  • 最後に Outlook の圧縮操作を実施する(これしないと .pst ファイルサイズに反映されない)

1: CSV 形式でエクスポート

  • ファイル > オプション > 詳細設定 > エクスポート 部分の「エクスポート」ボタン。ウィザードが開くはず
  • ファイルにエクスポート、次へ
  • テキストファイル(カンマ区切り)、次へ
  • エクスポートしたいフォルダーを選択した後、次へ
    • サブフォルダはエクスポートされません……
  • エクスポート先のファイル名を変えた後、次へ
    • 前回のファイル名はそのまま残るのでちゃんと変えないと、前回保存したファイルを上書きしちゃいます……
  • 完了ボタン

これをバックアップしたいフォルダの数だけ実施する。サブフォルダがエクスポートされないのが面倒くさい。

2: 当該メールを Outlook 上から削除

メールの入ったフォルダを丸ごと削除するかと思う。

ごみ箱を入れただけではダメ。ごみ箱も空にすること。

3: Outlook の圧縮操作

  • 左ペインから対象ツリーを選び、右クリックから「データファイルのプロパティ」
  • 全般タブの詳細ボタン
  • 今すぐ圧縮ボタン

これで .pst データファイルに圧縮処理が入り、削除したフォルダの分が実際に反映される。なお圧縮処理にはしばし時間がかかる。

ちなみに私は去年の年末、この整理作業を行って .pst ファイルを 500MB から 200 MB に圧縮した。

(補足1) CSV ファイルのフォーマット

  • 一行一メールでずらりと並ぶ
  • 列のフォーマットについては下記
  • 列について(当環境の場合。他環境でどうかは不明)
    • 差出人や宛先などは人名で表示され、メールアドレスは記録されていない
    • メールヘッダも記録されていない

列について

列はたとえば以下のような感じ。

"件名","本文","差出人","宛先","CC","BCC","重要度",,...

どんな列が存在するかは環境次第(会社次第)で異なると思われる。

※詳しくは知らないが Outlook 含む Microsoft Office 製品は、組織全体で一つの配信サーバーを持ち、各社員(が使っている PC の Office 製品)はこのサーバーの命令に従って動く、みたいな形態になっているのだと思う。だから配信サーバーが「Outlook のメールデータにはこの列とこの列と……この列をサポートする!」と決めていれば、各社員は逆らうことができない。このルールは当然ながら組織次第で異なってくるはず。

ちなみに、1: の手順で完了ボタンを押す前にフォーマットをいじれるボタンがあり、そこを使うとエクスポート対象列を絞れる。以下は 4 つに絞った例。

"件名","本文","差出人","宛先"

(補足2) FAQ

Q: エクスポートを pst ファイルでしないのはなぜ?

Ans: pst ファイルだと閲覧しづらいから。

pst ファイルは Outlook でないと見れない上、Outlook で開くと左ペインにツリーとして追加されるという挙動になる(pst ファイルの中身単体を単体のウィンドウで閲覧できる、という感じではない)。

つまり Outlook のデータファイル(へのポインタ)はグローバルにただ一つだけ管理されており、pst ファイルを開く=ポインタを追加する、という動作 になっている。当然ながら、バックアップした pst ファイルを消したり置き場所を変えたりしたら、Outlook 側が「データファイルが見つからないんだが?」と毎回エラーを吐く。エラーをなくすために、また pst ファイルを戻して……と対応に苦労した。

Q: CSV ファイルはインポートはできる?

Ans: 試してないので知らない。