3 #load configuration file
4 require( '/etc/debbugs/config' );
6 #set source of mail delivery
7 #sets any prefix needed to get mailer to add it to error mail
8 if ( $gMailer eq 'exim' )
9 { $gBadEmailPrefix = '';
10 $_ = $ENV{'LOCAL_PART'};
11 } elsif ( $gMailer eq 'qmail' )
12 { $gBadEmailPrefix = '//';
14 # $_ = $ENV{'RECIPIENT'};
17 { $gBadEmailPrefix = '';
24 #remove everything from @ to end of line
27 #convert remaining upper case to lower case
30 #set up to determine command
31 %withnaddressmap= ('-submit', 'B',
40 %withoutnaddressmap= ('submit', 'B',
52 if (s/^(\d{1,9})\b//) {
54 $map= $withnaddressmap{$_};
55 $addrrec= "$bugnumber$_";
58 $map= $withoutnaddressmap{$_};
62 #print no command received
64 print STDERR <<ENDTEXT;
66 $gBadEmailPrefix Unknown $gBug service address $_\@$gEmailDomain.
67 $gBadEmailPrefix Recognised addresses are:
69 $gBadEmailPrefix General: Read $gBug# in Subject: $gBug# is NNNN:
71 $gBadEmailPrefix request submit $gBug NNNN NNNN-submit
72 $gBadEmailPrefix control maintonly NNNN-maintonly
73 $gBadEmailPrefix owner quiet NNNN-quiet
74 $gBadEmailPrefix postmaster forwarded NNNN-forwarded
75 $gBadEmailPrefix done close NNNN-done NNNN-close
76 $gBadEmailPrefix submitter NNNN-submitter
78 $gBadEmailPrefix (all \@$gEmailDomain.)
80 $gBadEmailPrefix For instructions via the WWW see:
81 $gBadEmailPrefix http://$gWebDomain/
82 $gBadEmailPrefix http://$gWebDomain/Reporting.html
83 $gBadEmailPrefix http://$gWebDomain/Developer.html
84 $gBadEmailPrefix http://$gWebDomain/Access.html
85 $gBadEmailPrefix $gTextInstructions
86 $gBadEmailPrefix For details of how to access $gBug report logs by email:
87 $gBadEmailPrefix send \`request\@$gEmailDomain' the word \`help'
93 @months=qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
94 ($sec,$min,$hour,$mday,$mon,$year)= gmtime(time);
96 $queue= "$map$bugnumber";
98 chdir("$gSpoolDir/incoming") || &failure("chdir to spool: $!");
101 open(FILE,">T.$id") || &failure("open temporary file: $!");
102 printf(FILE "Received: (at %s) by $gEmailDomain; %d %s %d %02d:%02d:%02d +0000\n",
103 $addrrec, $mday,$months[$mon],$year+1900, $hour,$min,$sec) ||
104 &failure("write header to temporary file: $!");
105 while(<STDIN>) { print(FILE) || &failure("write temporary file: $!"); }
106 close(FILE) || &failure("close temporary file: $!");
108 rename("T.$id","I$queue.$id") || &failure("rename spool message: $!");
113 length($id) && unlink("T.$id");
114 print STDERR "bugs receive failure: @_\n";
115 exit(75); # EX_TEMPFAIL