世の中には、往々にして様々な形式のファイルが存在し、また往々にして「テキスト形式で変換してやらないと別のシステムに入れ込めない」。なんて場面がエンジニアやってるとチラホラと散見されます。
(別に定常的に発生するわけではないけれど、4~5年エンジニアをしていると誰もが1~2回は出くわしてるみたいな)
ご多分に漏れず先日知人からそんな相談をいただき、全然触ったこと無い形式のファイルでしたけれどもアレコレ調べてどうにかなったので備忘的にメモとして残しておきます。いつかどこかで誰かの助けになるといいな。
お題:Outlookのpstファイルをtextファイルにしたい
そんなわけで本日のお題はこちら。
「pstファイルをtextファイルにしてシステムに取り込むことはできませんか!」
という相談。(っていい加減繰り返し過ぎか)
pstファイルってなんや
「なんやpstファイルって…」というところから当然(?)始まったわけですけれども、どうやら調べてみたところメールソフトOutlook内のデータを保持しているバックアップ的なファイルらしい。
なんでも、メールアカウントごとに送受信したメール情報とか連絡先の情報とか、諸々の情報が含まれているとか。
Microsoft Outlook で .pst ファイルを管理する方法
https://docs.microsoft.com/ja-jp/outlook/troubleshoot/data-files/how-to-manage-pst-files
で、まあとりあえずテキストエディタで開いてみますよね。
「ワンちゃんテキストデータで開けたらラッキー」は誰でも思うはず。
諸行無常。
CentOSコマンドがあるらしい
とりあえずぐぐってみたら、やはり世の中似たようなことで試行錯誤している人はいたようで、参考にさせていただきました。
ありがてえありがてえ。エンジニアはこの同じWEBの世界で時間も場所も超えてつながってますよね。と思います。
Outlookのデータ(.pstファイル)をテキストに変換する(readpstコマンド利用)
よし、この「readpst
」コマンドを使おう。ってこれlinuxコマンドか。今のWindowsPC仮想環境入れてないんだよな。
どうしようか。
→ せっかくだしWindowsPCでやるならDockerで環境作ってみっか
と収まりました。
やってみた
思い立ったら即実行。なんのかんの、実はDocker Desktop for Windowsはインストール済みな上、Udemyで2時間予習済、これはちょっとおもしろい題材かもしれない。
Dockerにlinux環境構築
とはいえまだ自前でDocker環境構築するのは不慣れなところが多々あり、こちらの記事で勉強させていただきました。
docker run hello-world当たりまではショートカットしてやってます。
叩いたコマンドの羅列
それぞれの中身の紹介とは上の記事内におまかせするとして、ちょっとずつググりながら補ったコマンドを述べていきます。
CentOS7のイメージを取得
# イメージを取得
docker pull centos:centos7
docker run -it --name="centos7" centos:centos7 /bin/bash
コンテナ内のコマンド
# パッケージのインストール
yum update
# sudoのインストール
yum -y install sudo
# readpstのインストール
yum install libpst
※ちなみに、参考サイトの環境がUbuntuだったので、記載されてたコマンドが以下だったんですが、翌々考えてみたらCentOSでapt-get無いわってなったので、readpstは以下のサイトで調べました。こんなサイトあるんですね。これも良き。
- コマンド
apt-get install pst-utils
- 参考サイト
Dockerコンテナ内に読みたいファイルをコピー
あとはまあ、当然なんですが問題のPSTファイルがコンテナの中になかったので、それをコピー。(実はこれも初めてやった、お恥ずかしい)
使ったコマンドと参考サイトがこちら。
- コマンド
# コンテナ内のtmpディレクトリにコピー
docker cp xxxxxxxxx.pst (コンテナID):/tmp
- 参考サイト
コマンド実行
ではいよいよお待ちかねの実食です。待望の「readpst」コマンドをドン。
readpst -M xxxxxxxxx.pst
そんでできたファイルをdocker cpコマンドで元のホストの場所に戻す。
docker cp (コンテナID):/tmp/xxxxxxxxxxx /任意のホストディレクトリ
結果
感想(と続き)
チョロチョロ調べながら、そんなに手間をかけずに成功に一通りこなすことができてよかった。
やはり先人の知恵をこんなにも手軽に漁ることができるインターネットとは偉大です。
大事なことなのでもう一度言っておくと
「エンジニアの悩みや努力は、時代も場所も飛び越えて、このWEBの世界でつながっているんだ」
(左利きのエレン風)
ということです。今回の記事も、冒頭で述べたようにいつかどこかで誰かの役に立つといいな。
いやはや、お腹いっぱいだ。
などと油断してたら、「メールのヘッダ情報は、取り込み可能な形式に変換しなければならない」というお題が発生し、この記事が続くことになります。次回、ご期待ください。
いったん、おわり。