#
# Usage: jperl nif2mbx.pl 生ログ >[>] なんたら.MBX
#
@weekday = (Sun,Mon,Tue,Wed,Thu,Fri,Sat);
@monname = (Jan,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec);
while(<>){
  chop;
  if(/^ *\d+ +INET GATE +\w{3}\d{5} +\d{2}\/\d{2}\/\d{2} \d{2}:\d{2}$/){
    $inetsw = 1;next;
  }
  if(/^ *\d+ +(.+)  (\w{3}\d{5}) +(\d{2})\/(\d{2})\/(\d{2}) (\d{2}:\d{2})$/){
    $from = $1."<".$2."\@niftyserve.or.jp>";
    $year = $3;
    $year += ($year < 70) ? 2000 : 1900;
    $mon = $4;$day = $5;$time = $6.":00 +0900(JST)";
    $date =
    "$weekday[&dayweek($year,$mon,$day)], $day $monname[$mon-1] $year $time";
  }
  elsif(/^ {4}題名：(.+)$/ && $inetsw == 1){
    print "Subject: ",$1,"\n";
  }
  elsif(/^ {4}題名：(.+)$/ && $inetsw == 0){
    print "Subject: ",$1,"\n";
    print "From: $from\n";
    print "Date: $date\n\n";
    $printsw = 1;
    next;
  }
  elsif(/^Date:/ && $inetsw == 1){
    $printsw = 1;
  }
  elsif(/^受信後 \(1:削除/){ # ☆ミ　ここがメール終了判定
    print ".\n";
    $printsw = 0;$inetsw = 0;
  }
  print $_,"\n" if $printsw == 1;
}
sub dayweek{ # 曜日関数
  local($year,$month,$day) = @_;
  if($year<=1581 || $year==1582 && ($month<=9 || $month==10 && $day<=14)){
    return 7; # 不明
  }
  if($month<=2){
    $year--;$month+=12;
  }
  return
($year+int($year/4)-int($year/100)+int($year/400)+int((13*$month+8)/5)+$day)%7
;
}
