VMGファイルからEMLファイルを抽出する

vmgファイルからeml部分を抽出してファイルとして書き出すJavaプログラムの紹介です。

Java8以降がインストールされている環境で動作します。

vmg(vMessage)の正式な仕様は見つからなかったのですが、以下PDFを参考にしました。

http://creation.mb.softbank.jp/mc/tech/doc/A-007-111-Media_2.1.0(MC).pdf

プログラムの処理内容はvmgファイルを1バイトずつチェックして BEGIN:VBODY という行と END:VBODY という行の間をemlファイルとして保存するというもので、テキスト変換せずにバイナリで処理しているので文字コードの関係でEMLの内容が変更されることはありません。

vmg内emlのメール本文がBase64エンコードされずにそのままテキストで格納されている場合に、メール本文にもし END:VBODY という文字列のみの行があるとそこで本文終了と判断してしまいます。

ダウンロードは以下リンク先(Github Gist)の"Download ZIP"ボタンでzipファイルをダウンロードし、解凍するとソースと共にextractEML.jarが含まれています。

https://gist.github.com/kikujin/827947c483eea5f261f32ca4bfc44bc9

実行はWindowsでjarファイルがJavaに関連付けされていれば、extractEML.jarをダブルクリックなどで実行できますが、そうでなければコマンドプロンプトやターミナルなどのコマンドラインから以下のコマンドで起動してください。

java -jar extractEML.jar

もしWindowsで実行可能jarファイルをダブルクリックしても起動できない場合は以下をご参照ください。

https://fujinand.hatenablog.com/entry/2019/02/23/230336

操作は対象のvmlファイルかvmlファイルを含むディレクトリと出力先のディレクトリを指定して抽出ボタンをクリックするだけです。

f:id:fujinand:20190224185914p:plain