8 my $publish_rejections= 0;
9 if ($ARGV[0] eq '-P') {
10 $publish_rejections= 1;
18 $dir =~ s,/bin$,/log,;
23 sub parse__headerline () {
24 $f{Subject}= $' if m/^Subject:\s*/i; #';
25 $f{MessageID}= $' if m/^Message\-ID:\s*/i; #';
26 $f{From}= $' if m/^From:\s*/i; #';
28 sub parse__stumpsubject () {
29 $f{MessageNum}=$1 if m/^Subject:.*\:\:\w+\/(\d+)$/i;
40 sub parse_submission () {
46 print STDERR "$hadng $had2|$_|\n";
47 $hadng++ if m/^Newsgroups:/i;
54 last unless m/^\S+\:|^\s|^$|^From /;
58 $f{Event}= $had2 ? 'receive newstyle' : 'receive';
61 $f{Subject}= '[suppressed]';
62 $f{Event}= 'receive junk';
66 sub parse_stump2webstump () {
69 parse__stumpsubject() unless exists $f{'MessageNum'};
80 sub parse_webstump2stump () {
83 parse__stumpsubject();
88 next unless m/^reject|^approve|^preapprove/;
94 sub parse_mailout () {
97 $keepheader= 1 unless m/^[ \t]/;
102 $keepheader= 'mangle'
111 $line =~ s/\@.{0,2}/ at ../g if $keepheader eq 'mangle';
115 $f{Event}= "notify $'" if m/^X-Webstump-Event:\s*/i; #';
121 next unless s/^\> //;
129 while (<STDIN>) { $message .= $_; }
130 STDIN->error and die $!;
134 if ($publish_rejections &&
135 $f{Event} =~ m/^notify reject /) {
136 $f{CopyRef}= $f{MessageID};
137 $f{CopyRef} =~ s/\W/ sprintf '-%02x', ord($&) /ge;
138 open I, ">$dir/public/nr-$f{CopyRef}.txt" or die $!;
139 print I $message or die $!;
143 open L, ">>$dir/event.log" or die $!;
147 $v= '' unless defined $v;
151 } qw(Now MessageNum MessageID From Subject Event CopyRef);
153 print L join("\t",@s)."\n" or die $!;