]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 1246228 - Email addresses must not be encoded
authorFrédéric Buclin <LpSolit@gmail.com>
Tue, 5 Apr 2016 23:53:02 +0000 (01:53 +0200)
committerFrédéric Buclin <LpSolit@gmail.com>
Tue, 5 Apr 2016 23:53:02 +0000 (01:53 +0200)
r=dkl

Bugzilla/MIME.pm
Bugzilla/Mailer.pm
attachment.cgi

index 0916133a0d94ce6fa3d8d3f3d735622b014c6758..baeaa2ac2531cdecd26ba2f927c58267c3bd5a8f 100644 (file)
@@ -12,8 +12,6 @@ use warnings;
 use 5.14.0;
 use parent qw(Email::MIME);
 
-use Encode qw(encode);
-
 sub new {
     my ($class, $msg) = @_;
 
@@ -78,17 +76,9 @@ sub as_string {
     # Encode the headers correctly in quoted-printable
     foreach my $header ($self->header_names) {
         my @values = $self->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 utf8::is_utf8($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);
-        }
+        $self->header_str_set($header, @values);
     }
 
     # Ensure the character-set and encoding is set correctly on single part
index c35f12ef841c03d75361461c875026dfd6c0f053..28b61b84276a140147ca1746557caa177ca56f0f 100644 (file)
@@ -23,8 +23,6 @@ use Bugzilla::Util;
 
 use Date::Format qw(time2str);
 
-use Encode qw(encode);
-use Encode::MIME::Header;
 use Email::Sender::Simple qw(sendmail);
 use Email::Sender::Transport::SMTP::Persistent;
 use Bugzilla::Sender::Transport::Sendmail;
index 27a5b66c46980ade34fab13c7804568decc3da91..1e1266d290ef27c683a300ee393ba72805ac40d6 100755 (executable)
@@ -26,6 +26,7 @@ use Bugzilla::Attachment::PatchReader;
 use Bugzilla::Token;
 
 use Encode qw(encode find_encoding);
+use Encode::MIME::Header; # Required to alter Encode::Encoding{'MIME-Q'}.
 use Cwd qw(realpath);
 
 # For most scripts we don't make $cgi and $template global variables. But