my @body; #list of commands
my $replyto; #address of to send reply to
-my $transcript; #building of return message
+my $transcript = ''; #building of return message
+my %LTags; #Tags Local to this email
+my @message; #holds copy of msg to apply tags
#############################################################################
# Commandline parsing
print "D1: config file=$config\n" if $Globals{ 'debug' };
@config = Debbugs::Config::ParseConfigFile( $config );
+#############################################################################
+# Load in template emails
+#############################################################################
+@notify_done_email = Debbugs::Email::LoadEmail( $Globals{ 'template-dir' }.'/'.$Globals{ 'not-don-con' } );
+
#############################################################################
# Find file name and load input file
#############################################################################
############################################################################
# Determine Reply To address
############################################################################
-$replyto= $inputmail->head->count( "Reply-to" ) ? $inputmail->head->get( "Reply-to" ) : $inputmail->head->get( "From" );
+my $header = $input->mail->head;
+$replyto= $header->count( "Reply-to" ) ? $header->get( "Reply-to" ) : $header->get( "From" );
+
+############################################################################
+# Add Email info to Local Tags (LTags)
+############################################################################
+$LTags{ 'REPLY_TO' ) = $replyto;
+$LTags{ 'CC_TO' ) = $header->get( 'CC' ) if $header->count( 'CC' );
+$LTags{ 'MESSAGE_ID' } = $header->get( 'Message-id' ) if $header->count( 'Message-id' );
+$LTags{ 'MESSAGE_BODY' } = join( '\n', @body );
+$LTags( 'MESSAGE_DATA' } = "control";
+$LTags{ 'MESSAGE_DATE' } = $header->get( 'Date' ) if $header->count( 'Date');
+if ( $header->count( 'Subject' ) )
+{ $LTags{ 'MESSAGE_SUBJECT' } = $header->get( 'Subject' ); }
+else { &transcript( <<END ); }
+Your email does not include a Subject line in the header. This is a
+violation of the specifications and may cause your email to be rejected at
+some later date.
+
+END
############################################################################
# Start processing of commands
############################################################################
-$transcript='';
if ( $control ) { &transcript("Processing commands for control message:\n\n"); }
else { &transcript("Processing commands for request message:\n\n"); }
} elsif (m/^close\s+\#?(\d+)$/i) {
$ok++;
$ref= $1;
- if (&setbug) {
- if (length($s_done)) {
+ if ( &setbug ) {
+ if(length($s_done)) {
&transcript("$gBug is already closed, cannot re-close.\n\n");
&nochangebug;
} else {
$action= "$gBug closed, ack sent to submitter - they'd better know why !";
do {
+ CLOSE BUG RECORD
&addmaintainers($s_package);
- if ( length( $gDoneList ) > 0 && length( $gListDomain ) >
- 0 ) { &addccaddress("$gDoneList\@$gListDomain"); }
+ if ( length( $gDoneList ) > 0 && length( $gListDomain ) > 0 )
+ { &addccaddress("$gDoneList\@$gListDomain"); }
$s_done= $replyto;
- $message= <<END;
-From: $gMaintainerEmail ($gProject $gBug Tracking System)
-To: $s_originator
-Subject: $gBug#$ref acknowledged by developer
- ($s_subject)
-References: $header{'message-id'} $s_msgid
-In-Reply-To: $s_msgid
-Message-ID: <handler.$ref.$nn.notifdonectrl.$midix\@$gEmailDomain>
-
-This is an automatic notification regarding your $gBug report.
-
-It has been marked as closed by one of the developers, namely
-$replyto.
-
-You should be hearing from them with a substantive response shortly,
-if you have not already done so. If not, please contact them
-directly or myself.
-
-$gMaintainer
-(administrator, $gProject $gBugs database)
-END
- &sendmailmessage($message,$s_originator);
+ @message = @notify_done_email;
+ &Debbugs::Email::ProcessTags( \@message, \@BTags, "BTAG" );
+ &Debbugs::Email::ProcessTags( \@message, \@LTags, "LTAG" );
+ &sendmailmessage( join( "\n", @message), $s_originator );
+ Save the bug record
} while (&getnextbug);
}
}