From 57d0f67516de8c88c9f3b2207718d6d35e4f5fd1 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 Content-Type: text/plain; charset=utf-8 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 --- C4/Letters.pm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/C4/Letters.pm b/C4/Letters.pm index 5382819..c1a678b 100644 --- a/C4/Letters.pm +++ b/C4/Letters.pm @@ -1283,9 +1283,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.1.4