#!/usr/bin/perl my $MAIL_FROM = "kuri\@usupi.org"; my $FORWARD_FROM = "kakuu-no-address\@ezweb.ne.jp"; my $FORWARD_TO = "usu\@usupi.org"; my $SENDMAIL_CMD = "/usr/sbin/sendmail -oi $FORWARD_TO"; my $FORWARD_MAX_LINES = 10; sub send_mail { my ($cmd, $message) = @_; if(open(MAIL, "|$cmd")) { print MAIL $message; close MAIL; } else { print STDERR "cannot open \"$SENDMAIL\".\n"; } 1; } ### main my $forward = 0; my $message = ""; my $line = 0; my $from_header = ""; # parse header while (<>) { chop; last if /^\s*$/; if($from_header) { if(/^\s+(\S.*)$/) { $from_header .= " $1"; next; } else { $message .= "$from_header\n"; $forward = 1 if $from_header =~ /$FORWARD_FROM/; $from_header = ""; } } $forward = 1 if /^Subject:\s*KEITAI/; if(/^From:\s+(\S.*)$/) { $from_header = "Reply-To: $1"; $_ = "From: $MAIL_FROM"; } $message .= "$_\n"; } $message .= "\n"; # get content while (<>) { $message .= $_; $line++; } exit 0 unless $forward && $line <= $FORWARD_MAX_LINES; &send_mail($SENDMAIL_CMD, $message); 0;