gikoha’s blog

個人的メモがわり

vmg2eml

とりあえずフリーズしない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);