min117の日記

初期desireもち。趣味Mac,メインFedora,仕事xp。

Outlookのデータ(.pstファイル)をテキストに変換する(readpstコマンド利用)

6年前の古いOutlookのデータ(.pst)が出てきた。

f:id:min117:20190413074934p:plain

6年前、自分はどんなメールをしていたんだろう…と。

 

開いて中を見たいけどWindowsで開くと

f:id:min117:20190413074853p:plain

現在のOutlookにインポートされちゃって、リアルに使っているメールと混じってしまう心配がある。

 

なのでLinuxOutlook(.pst)ファイルを読めないかを考えてみる。

 

 

 

読めたreadpstという素晴らしいコマンドを作っている人がいた。

www.systutorials.com

 

さっそくインストールする。環境は RaspberryPi 3

$ sudo apt-get -y install readpst

f:id:min117:20190317015029p:plain

 

読み込みたいOutlookデータファイル(.pst)を用意する。

$ ls | grep pst

f:id:min117:20190413080247p:plain

 

使い方を調べる。

$ readpst -h

f:id:min117:20190413081424p:plain

読み取ったメールをファイルに書き出すには -Mオプションをつけるようだ。

 

読み取ってみる。

$ readpst -M hoge@test.jp.pst

f:id:min117:20190413082044p:plain
すっげ。

海外の人が作ったコマンドなのに日本語のメールフォルダも全く問題なくそのまま取り出せている。

 

できたフォルダを見てみる。

 hoge@test.jp.pst  というファイルを読み取った場合は

 hoge@test.jp というフォルダができて、その中にメールが書き出されるようだ。

 

$ ls hoge@test.jp

$ tree hoge@test.jp

f:id:min117:20190413082610p:plain

連番のファイルになるようだ。

 

取り出せたメールファイルを開いてみる

$ cat hoge@test.jp/受信トレイ/1

f:id:min117:20190413083645p:plain

スゴすぎる。日本語メール本文も全く問題なく読み取れた。6年前のメールが一瞬で復活する。

 

ただし、件名だけが文字化けている。これはソフトウェアのバグではなくて、メールの仕様(エンコード)のせいだろうと思う。

 

試しに nkf に通してみる。

$ cat hoge@test.jp/受信トレイ/1 | nkf

f:id:min117:20190413084314p:plain

完璧。件名(Subject)のみならず、Message-id も日本語で復元された。

 

for文で全メールをなめて件名だけ読み取ってみる。

 

for i in hoge@test.jp/受信トレイ/*; do echo "$i"; cat "$i" | grep Subject | nkf; echo '---------------------------' 

f:id:min117:20190413085257p:plain


読めた。素晴らしすぎる。

f:id:min117:20190413085117p:plain

しばらく過去のファイルを漁ってみるか。

 

WindowsならPowerShellを使って添付ファイルも復元できるらしい。今度試す。

kapibara-sos.net