とりあえずフリーズしないperl版を作ってみた
使い方:perl vmg2eml.pl hogehoge.vmg
カレントディレクトリに.emlファイルを作りまくります
絵文字とか変換とかまったく考えていないがまあ動くのでよし!
注意:cpanでDate::Manipをインストールしておいてください
#!/usr/bin/perl -w use utf8; binmode STDOUT, ":utf8"; binmode STDIN, ":utf8"; use Encode; use Date::Manip; Date_Init("TZ=JST"); open DATA, "<", $ARGV[0]; $cnt =0; while (<DATA>) { chomp; if(/^BEGIN:VBODY/) { $cnt++; $fn = ""; $t = ""; while(<DATA>) { last if(/^END:VBODY/); chomp; if(substr($_,0,5) eq "Date:") { $t .= $_ . "\n"; $dat = substr($_,6); $date = ParseDate($dat); $fn = UnixDate($date,"%Y%m%d%H%M%S") . ".eml"; } else { $t .= $_ . "\n"; } } if($fn eq "") { $fn = sprintf("%05d.eml",$cnt); } open OUTPUT, ">", $fn; print OUTPUT $t; close(OUTPUT); printf "%s produced\n", $fn; } } close(DATA);