diff --git a/bugzilla-email-encode.patch b/bugzilla-email-encode.patch index 70c2953..21a457f 100644 --- a/bugzilla-email-encode.patch +++ b/bugzilla-email-encode.patch @@ -1,47 +1,48 @@ -diff --git a/Bugzilla/MIME.pm b/Bugzilla/MIME.pm -index 7b5843a..8c6c141 100644 ---- a/Bugzilla/MIME.pm -+++ b/Bugzilla/MIME.pm -@@ -13,9 +13,6 @@ use warnings; +diff --git a/Bugzilla/Mailer.pm b/Bugzilla/Mailer.pm +index 6464015..1149eb0 100644 +--- a/Bugzilla/Mailer.pm ++++ b/Bugzilla/Mailer.pm +@@ -19,8 +19,6 @@ use Bugzilla::Util; - use parent qw(Email::MIME); + use Date::Format qw(time2str); -use Encode qw(encode); -use Encode::MIME::Header; -- - sub new { - my ($class, $msg) = @_; - state $use_utf8 = Bugzilla->params->{'utf8'}; -@@ -79,20 +76,12 @@ sub as_string { + use Email::Address; + use Email::MIME; + # Return::Value 1.666002 pollutes the error log with warnings about this +@@ -71,22 +69,12 @@ sub MessageToMTA { # MIME-Version must be set otherwise some mailsystems ignore the charset - $self->header_set('MIME-Version', '1.0') if !$self->header('MIME-Version'); + $email->header_set('MIME-Version', '1.0') if !$email->header('MIME-Version'); - # Encode the headers correctly in quoted-printable + # Encode the headers correctly. - foreach my $header ($self->header_names) { - my @values = $self->header($header); + foreach my $header ($email->header_names) { + my @values = $email->header($header); - # We don't recode headers that happen multiple times. - next if scalar(@values) > 1; - if (my $value = $values[0]) { -- utf8::decode($value) unless $use_utf8 && utf8::is_utf8($value); +- if (Bugzilla->params->{'utf8'} && !utf8::is_utf8($value)) { +- utf8::decode($value); +- } - - # avoid excessive line wrapping done by Encode. - local $Encode::Encoding{'MIME-Q'}->{'bpl'} = 998; + map { utf8::decode($_) if defined($_) && !utf8::is_utf8($_) } @values; - my $encoded = encode('MIME-Q', $value); -- $self->header_set($header, $encoded); +- $email->header_set($header, $encoded); - } -+ $self->header_str_set($header, @values); ++ $email->header_str_set($header, @values); } - # Ensure the character-set and encoding is set correctly on single part + my $from = $email->header('From'); diff --git a/attachment.cgi b/attachment.cgi -index 5db8f59..40b0c9d 100755 +index e003e1f..319e46f 100755 --- a/attachment.cgi +++ b/attachment.cgi -@@ -26,6 +26,7 @@ use Bugzilla::Attachment::PatchReader; - use Bugzilla::Token; +@@ -31,6 +31,7 @@ use Bugzilla::Token; + use Bugzilla::Keyword; use Encode qw(encode find_encoding); +use Encode::MIME::Header; # Required to alter Encode::Encoding{'MIME-Q'}.