From e1e38e74caf6e5ba57db9726dda1cbdc544969a8 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Fri, 23 Nov 2018 11:36:49 +0100 Subject: [PATCH] Bug 21875: Handling subject line in Letters.pm The variable name $utf8 is very misleading: it contains MIME-Header encoding. $message->{subject} comes from the database and is in perl internal format; it should NOT be decoded as a MIME-Header. After encoding to MIME-Header, previously another (useless) encoding to UTF-8 was done. Since the string is plain ASCII, this is useless and theoretically wrong. We should stay in MIME-Header. Test plan: See Bugzilla comment5. Signed-off-by: Marcel de Rooy Signed-off-by: Jonathan Druart --- C4/Letters.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/C4/Letters.pm b/C4/Letters.pm index bf94c0e2ba..cbe6559e82 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -1284,9 +1284,10 @@ sub _send_message_by_email { } } - my $utf8 = decode('MIME-Header', $message->{'subject'} ); - $message->{subject}= encode('MIME-Header', $utf8); - my $subject = encode('UTF-8', $message->{'subject'}); + # Encode subject line separately + $message->{subject} = encode('MIME-Header', $message->{'subject'} ); + my $subject = $message->{'subject'}; + my $content = encode('UTF-8', $message->{'content'}); my $content_type = $message->{'content_type'} || 'text/plain; charset="UTF-8"'; my $is_html = $content_type =~ m/html/io; -- 2.11.0