/xlog/log/*/event.log
/xlog/log/*/event.log.[0-9]
/xlog/log/*/event.log.[0-9].gz
+/xlog/log/*/nr-*.txt
/crontab.part
/stump/etc/modenv
/stump/etc/added-headers
if $local_part_suffix is +%ABBREV%-internal-reject-copy
then
- seen deliver %ABBREV%-rejections@chiark.greenend.org.uk
+ seen deliver %REJECTIONSLIST%
finish
endif
for k in $pas; do eval "$k=''"; export $k; done
. settings
-export GROUP ABBREV INFOHEADER MODEMAIL GROUPURL
+export GROUP ABBREV INFOHEADER MODEMAIL GROUPURL REJECTIONSLIST
. ../global-settings
export ROOTBASEDIR CGIBASEURL DOMAIN SLIMYDOMAIN OURUSER ADMIN
-I Bcc:%OURUSER%+%ABBREV%-internal-log+mailout@%DOMAIN%
-I Bcc:%OURUSER%+%ABBREV%-internal-reject-copy@%DOMAIN%
'
+export MAILOUT_RECVACK_FORMAIL_ARGS
+export MAILOUT_ACCEPTACK_FORMAIL_ARGS
+export MAILOUT_REJECT_FORMAIL_ARGS
#######################################################################
# STUMP enforces limitations on the maximum number of newsgroups
$dir =~ s,/bin$,/log,;
$dir .= "/$ARGV[1]";
+my $message;
+
sub parse__headerline () {
$f{Subject}= $' if m/^Subject:\s*/i; #';
$f{MessageID}= $' if m/^Message\-ID:\s*/i; #';
}
sub parse_mailout () {
+ my $keepheader= 1;
while (<STDIN>) {
+ $keepheader= 1 unless m/^[ \t]/;
+ $keepheader= 0
+ if m/^(?: received )/ix;
+ $keepheader= 'mangle'
+ if m/^(?: to
+ | from
+ | return-path
+ | reply-to
+ | errors-to
+ )/ix;
+ if ($keepheader) {
+ my $line= $_;
+ $line =~ s/\@.{0,2}/ at ../g if $keepheader eq 'mangle';
+ $message .= $line;
+ }
chomp;
$f{Event}= "notify $'" if m/^X-Webstump-Event:\s*/i; #';
last if m/^$/;
}
while (<STDIN>) {
+ $message .= $_;
chomp;
next unless s/^\> //;
last if m/^$/;
$f{Event}= '?';
&{"parse_$ARGV[0]"};
-while (<STDIN>) { }
+while (<STDIN>) { $message .= $_; }
STDIN->error and die $!;
$f{Now}= time;
+if ($f{Event} =~ m/^notify reject /) {
+ #$ref= $f{MessageID}
+ open I, ">$dir/nr-$f{MessageNum}.txt" or die $!;
+ print I $message or die $!;
+ close I or die $!;
+}
+
open L, ">>$dir/event.log" or die $!;
my @s= map {