mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

Ruby - UNIX MBOX データをMySQLへ保存!

[ プログラミング ] [ Mail, MySQL, Ruby ]

こんばんは。

最近、よく記事にしていた UNIX BOX メールデータの検証を一旦終了し、いよいよ UNIX MBOX データを MySQL へ登録する作業を試行しました。 ※データ登録作業には Ruby を使用していますが、スクリプトは掲載していません。

後述のとおり、2種類の方法を試行しました。 結局、第1の方法がしっくり来なかったので、第2の方法を採択しました。

第1の方法

毎回、直接 UNIX MBOX メールデータを全件読み込み、MySQL 登録済みかどうかをチェックしながら、INSERT していく方法。 MySQL 登録済みかどうかはヘッダ全行が同一かどうかで判定しています。

  • DB登録処理

MBOX_DB_1_1

第2の方法

第1の方法では、コピーなどで複数存在する同一メールは1つとみなされること、毎回全件 TABLE チェックを行うため処理に時間がかかりすぎることから、前回処理済の UNIX MBOX データと今回処理しようとしている UNIX MBOX データの差分ファイルを作成し、その差分ファイル分のみを無条件で MySQL INSERT する方法にしています。

  • 差分ファイル作成処理

MBOX_DB_2_1

  • DB登録処理

MBOX_DB_2_2

DB登録処理は読込元が異なるだけなので第1の方法で使用したDB登録処理をそのまま使用しています。


差分ファイル作成処理については、当ブログ過去記事もご参照ください。

UNIX MBOX データについても当ブログ過去記事をご参照ください。

今回の DB 登録作業は単に UNIX MBOX メールデータを MySQL へ無条件に全件登録しただけです。 今後は、DB 登録したデータからメールを復元したり、ヘッダ情報からスパム調査したり、といったことが出来ればと考えています。

以上。

Comments