]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bugzilla Bug 306207: sendmail support under Windows bypasses message encoding
authorwurblzap%gmail.com <>
Thu, 3 Nov 2005 04:50:46 +0000 (04:50 +0000)
committerwurblzap%gmail.com <>
Thu, 3 Nov 2005 04:50:46 +0000 (04:50 +0000)
Patch by byron jones (glob) <bugzilla@glob.com.au>
r=wurblzap, a=myk

Bugzilla/BugMail.pm

index c487c4a6c6f1f68b45e18121af0fcdef95fcdf86..e8e725011ac8bbfc11fc31b4da22bacbb2129789 100644 (file)
@@ -630,10 +630,22 @@ sub MessageToMTA {
     my ($msg) = (@_);
     return if (Param('mail_delivery_method') eq "none");
 
+    my ($header, $body) = $msg =~ /(.*?\n)\n(.*)/s ? ($1, $2) : ('', $msg);
+    my $headers;
+
+    if (Param('utf8') and (!is_7bit_clean($header) or !is_7bit_clean($body))) {
+        ($headers, $body) = encode_message($header, $body);
+    } else {
+        my @header_lines = split(/\n/, $header);
+        $headers = new Mail::Header \@header_lines, Modify => 0;
+    }
+
     if (Param("mail_delivery_method") eq "sendmail" && $^O =~ /MSWin32/i) {
         open(SENDMAIL, '|' . SENDMAIL_EXE . ' -t -i') ||
             die "Failed to execute " . SENDMAIL_EXE . ": $!\n";
-        print SENDMAIL $msg;
+        print SENDMAIL $headers->as_string;
+        print SENDMAIL "\n";
+        print SENDMAIL $body;
         close SENDMAIL;
         return;
     }
@@ -650,16 +662,6 @@ sub MessageToMTA {
         $Mail::Mailer::testfile::config{outfile} = "$datadir/mailer.testfile";
     }
     
-    my ($header, $body) = $msg =~ /(.*?\n)\n(.*)/s ? ($1, $2) : ('', $msg);
-    my $headers;
-
-    if (Param('utf8') and (!is_7bit_clean($header) or !is_7bit_clean($body))) {
-        ($headers, $body) = encode_message($header, $body);
-    } else {
-        my @header_lines = split(/\n/, $header);
-        $headers = new Mail::Header \@header_lines, Modify => 0;
-    }
-
     $mailer->open($headers->header_hashref);
     print $mailer $body;
     $mailer->close;