jeyseni's diary

「ジェイセニ」と呼んでください。批判ではなく提案をするのが生き甲斐です。

溜まった巨大なgmailの保存法を考えた件【追記】90万メールのCSVファイルが保存できずテキストファイルで処理

パソコン通信」といっても,ほとんど分からないだろうが,インターネットが広がる以前に全国レベルのネットコミュニティーを提供していた仕組みである。大手はNifty-Serve富士通系)とPC-VANNEC系),そして日経MIX(日経マグロウヒル社)が存在した。
 当時,パソコン通信に加入するとメールアドレスがもらえ,相互の交流ができた。貴重な財産だったと思っている。
 インターネットが始まってびっくりしたのが,フリーメールアドレスが提供されるようになったことである。
 最初は,Windowsを登録する際に作ったMicrosoftのメールアドレスだった。当時は「@hotmail.com」しかなかったように思う。現在は,「@outlook.jp」,「@outlook.com」も登録できる。おそらく最初に登録してから30年近く経つが,いまだにこのアドレスは健在である。
 続いてポータルサイトとして最初によく使っていたYahooのフリーメールアドレスを登録した。しかし,複数のサイトの登録用には使ったが,あまり使うことはなかった。
 ほぼ同時期に使い始めたのがgoogleメール(Gmail)である。仕事以外のメールは,ほぼすべてここに集約している。
 Gmailのすごいところは,検索が圧倒的に速いことである。メールソフトでPOP3サーバーからメールを取得しても,内容の検索には10秒ぐらいはかかる。しかしGmailWebブラウザ上で検索すると,1秒でほぼ検索結果が得られる。記憶力のない筆者にとって,この検索能力は驚異的に重要であった(同様に,ハードディスク上のファイル名,およびファイルの中身についても,瞬時に検索できる仕組みを構築してある。筆者が脳を半分,パソコンに売り渡しているという理由でもある)。
 また,あまりお勧めできないが,仮想のメールアドレスを取得できるところもすごいところである。通常は個人の認証が厳しく,複数アドレスを持つことは不可能に近いのだが,1つの登録アドレスに対してサブアドレスを複数設定して迷惑メールに対応できるほか,まったく架空のメールアドレスを設定できる。このブログ用の連絡先も,架空メールである。悪用の可能性も否定できないが,twitterのような規制も行われていない。懐が深いのか,単なる容認なのかは判断しかねるが,個人情報を明かしたくない場合も多く,この仕組みはありがたく使わせていただいている。
 さてそのGmailだが,1アカウントで16GBのサーバー容量を提供してくれている。しかしこれは,GmailGoogle Driveを含めた容量なので,デジカメの写真などをGoogle Driveに保管していると,これも結構いっぱいになる。筆者の場合も数年前から15GBを超え,残りが厳しい状況になっている。
 古いGmailを消せばいいのだが,例のごとく断捨離のできない性格なので,とりあえずバックアップをしたいと思っていろいろな手段を試してきたが,やっと良さげな方法を見つけたので紹介したいと思う。
 筆者的には,最終的にデータベースソフト(ファイルメーカー)に格納して管理したいと思うのである。ところが,ファイルメーカーはデータのインポートがExcelファイル,CSV・TABなどのテキストファイルしか基本的にはなく,メールソフトの格納形式であるMboxやInboxを読み込むことができない。また,メールソフト間でのメール単位の標準交換形式であるemlファイルにも対応していない。そこで,Excelやテキスト形式でまとめてインポートできる必要があった。
 Windows標準の「メール」や「Outlook」,かつての標準だった「Outlook Express」には,eml形式以外はメールソフト間の格納形式しか提供されていない。フリーソフトでずっと使っていた「Sylpheed」もemlエクスポートしかできなかった。
 「CSVエクスポートができるメールソフト」で検索したところ,「Thunderbird」が対応しているという。
 Mozilla Thunderbirdも筆者には馴染みのあるメールソフトで,同じMozilla社のWebブラウザー「Firefox」を長年使っていた。ただ,ボランティアで改良を重ねていたMozilla社の開発が滞った時期があり,急速にのし上がってきた「Google Chrome」やその対抗を強めた「Internet Explorer(IE)」が,機能面,セキュリティ面などで一気にシェアを高めてしまい,筆者もWindows7まではGoogle Chrome,Windows10からはIEの後継にあたる「Microsoft Edge」を標準的に使っていた。Thunderbirdの名前も久しぶりだった。
 Thunderbirdからエクスポートをするには,アドオンとして「ImportExportTools NG」をインストールする必要がある。まずこれをインストール。Thunderbirdにメールアカウントを設定し,メールを取得してから,テスト的にCSV出力をしてファイルメーカーに読み込ませるテストをして,基本的に問題はなさそうだった。添付ファイルは取得できないが,それはさすがにもう過去のものなので,必要ないと割り切った。メールアドレスが取得できれば,今後の役に立つという目的が主体だからだ。
 ところが,もう1つ問題が発生した。ThunderbirdGmailのアカウントを設定しても,過去メールの読み込みに膨大な時間がかかることである。一般にPOP3だと,1回の読み込みトランスアクションは250メール程度。間隔を置いて自動的に繰り返しトランスアクションは発生するが,1万件ぐらいならともかく,数字をみると90万件もメールがある。とてもまず一覧を取得するまでに何日もかかってしまう。
 そこで見つけたのが「MailStore Home」というフリーウエアである。さまざまなメールソフトのバックアップと全文検索の機能を持つ。Gmailのサーバーを対象にして読み込むと,90万メールを数分で読み込んでしまった。
 さらにMailStore Homeのいいところは,このバックアップから複数のファイル形式で出力ができることだ。ただし,CSV出力には対応していない。
 そこで,MailStore HomeでGmailのメールをThunderbirdのメールボックスに直接変換させ,次にThunderbirdCSV出力させる,という手順をようやく確立した。90万件のCSV出力も1時間ぐらいで済んだ。あとはファイルメーカーにインポートするだけである。
 ThunderbirdからのCSV出力は,デフォルトでは日付時間書式が「月/日/年」だけで日付しか出てこない。このため,事前に設定で出力形式に時間を加えておく必要がある。ImportExportTools NGの設定で,日付書式を「%Y/%n/%d」の順に変更し,さらに時刻も加えるために,「%Y/%n/%d %H:%M」とするといいだろう。書式設定のHelpページは,正直いって理解しづらかった。

【追記】実は90万件のCSV出力は何度も失敗していた。本来ならば問題なく作成できるはずだが,PCのメモリーの関係かとも思われる。

 そこでテキストファイルでメール1件につき1ファイルをエクスポートし,これをファイルメーカーでフォルダごと読むという方法で最終的には解決した。しかし,ここでも,1フォルダ90万ふぁいるというものの扱いには苦労し,フォルダを開くだけでも数分かかるという状況だった。

 ファイルメーカーでフォルダごと読み込むと,1フィールドにメールの全要素が入る。ここから,タイトル,受信日時,送信者を切り出して別フィールドにするのはお手のものだったのだが,すべての抜き出しに丸1日かかってしまった。さらに,なぜかほとんどのメールが二重に保存されていたようで,これを選択して削除するのにまた丸1日かかってしまった。最終的に得られたファイルから,20年前のメールのやり取りを読むことができ,これでgmail内のファイルの一斉削除で容量回復を図れると思われる。