Commit a5d2579b authored by wurblzap%gmail.com's avatar wurblzap%gmail.com

Bugzilla Bug 306207: sendmail support under Windows bypasses message encoding

Patch by byron jones (glob) <bugzilla@glob.com.au> r=wurblzap, a=myk
parent 4adfa913
...@@ -630,10 +630,22 @@ sub MessageToMTA { ...@@ -630,10 +630,22 @@ sub MessageToMTA {
my ($msg) = (@_); my ($msg) = (@_);
return if (Param('mail_delivery_method') eq "none"); 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) { if (Param("mail_delivery_method") eq "sendmail" && $^O =~ /MSWin32/i) {
open(SENDMAIL, '|' . SENDMAIL_EXE . ' -t -i') || open(SENDMAIL, '|' . SENDMAIL_EXE . ' -t -i') ||
die "Failed to execute " . SENDMAIL_EXE . ": $!\n"; die "Failed to execute " . SENDMAIL_EXE . ": $!\n";
print SENDMAIL $msg; print SENDMAIL $headers->as_string;
print SENDMAIL "\n";
print SENDMAIL $body;
close SENDMAIL; close SENDMAIL;
return; return;
} }
...@@ -650,16 +662,6 @@ sub MessageToMTA { ...@@ -650,16 +662,6 @@ sub MessageToMTA {
$Mail::Mailer::testfile::config{outfile} = "$datadir/mailer.testfile"; $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); $mailer->open($headers->header_hashref);
print $mailer $body; print $mailer $body;
$mailer->close; $mailer->close;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment