6年前の古いOutlookのデータ(.pst)が出てきた。
6年前、自分はどんなメールをしていたんだろう…と。
開いて中を見たいけどWindowsで開くと
現在のOutlookにインポートされちゃって、今リアルに使っているメールと混じってしまう心配がある。
なのでLinuxでOutlook(.pst)ファイルを読めないかを考えてみる。
読めた。readpstという素晴らしいコマンドを作っている人がいた。
さっそくインストールする。環境は RaspberryPi 3。
$ sudo apt-get -y install readpst
読み込みたいOutlookデータファイル(.pst)を用意する。
$ ls | grep pst
使い方を調べる。
$ readpst -h
読み取ったメールをファイルに書き出すには -Mオプションをつけるようだ。
読み取ってみる。
$ readpst -M hoge@test.jp.pst
すっげ。
海外の人が作ったコマンドなのに日本語のメールフォルダも全く問題なくそのまま取り出せている。
できたフォルダを見てみる。
hoge@test.jp.pst というファイルを読み取った場合は
hoge@test.jp というフォルダができて、その中にメールが書き出されるようだ。
$ ls hoge@test.jp
$ tree hoge@test.jp
連番のファイルになるようだ。
取り出せたメールファイルを開いてみる。
$ cat hoge@test.jp/受信トレイ/1
スゴすぎる。日本語メール本文も全く問題なく読み取れた。6年前のメールが一瞬で復活する。
ただし、件名だけが文字化けている。これはソフトウェアのバグではなくて、メールの仕様(エンコード)のせいだろうと思う。
試しに nkf に通してみる。
$ cat hoge@test.jp/受信トレイ/1 | nkf
完璧。件名(Subject)のみならず、Message-id も日本語で復元された。
for文で全メールをなめて件名だけ読み取ってみる。
$ for i in hoge@test.jp/受信トレイ/*; do echo "$i"; cat "$i" | grep Subject | nkf; echo '---------------------------'
読めた。素晴らしすぎる。
しばらく過去のファイルを漁ってみるか。
※ WindowsならPowerShellを使って添付ファイルも復元できるらしい。今度試す。