From 219f9d5d8581c9965faf427460520b2407c14934 Mon Sep 17 00:00:00 2001 From: Marcel de Rooy Date: Thu, 10 Apr 2014 14:40:01 +0200 Subject: [PATCH] Bug 12065: Consistent use of encode_qp when sending basket/shelf Content-Type: text/plain; charset=utf-8 QP-encode both mail header and mail body when sending baskets or shelves. There is no need to Encode qp-encoded strings. Note that this does not solve all possible encoding problems in the mail sent. This is related to decoding CGI parameters and use of TT. That problem is addressed in report 11944. Test plan: Verify if sending a basket from opac and staff still works. Check if sending a shelf (list) from opac and staff still functions as expected. --- basket/sendbasket.pl | 12 +++--------- opac/opac-sendbasket.pl | 3 ++- opac/opac-sendshelf.pl | 1 + virtualshelves/sendshelf.pl | 6 ++++-- 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/basket/sendbasket.pl b/basket/sendbasket.pl index 885ee41..40547f0 100755 --- a/basket/sendbasket.pl +++ b/basket/sendbasket.pl @@ -122,6 +122,7 @@ if ( $email_add ) { if ( $template_res =~ /
(.*)/s ) { $email_header = $1; $email_header =~ s|\n?(.*)\n?|$1|; + $email_header = encode_qp($email_header); } my $email_file = "basket.txt"; @@ -133,19 +134,12 @@ if ( $email_add ) { if ( $template_res =~ /(.*)/s ) { $body = $1; $body =~ s|\n?(.*)\n?|$1|; - $body = encode("UTF-8", encode_qp($body)); + $body = encode_qp($body); } my $boundary = "====" . time() . "===="; - # $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; - # - # $email_header = encode_qp($email_header); - # - # $boundary = "--".$boundary; - # - # # Writing mail - # $mail{body} = + # Writing mail $mail{'content-type'} = "multipart/mixed; boundary=\"$boundary\""; my $isofile = encode_base64(encode("UTF-8", $iso2709)); $boundary = '--' . $boundary; diff --git a/opac/opac-sendbasket.pl b/opac/opac-sendbasket.pl index ca3a973..5821bea 100755 --- a/opac/opac-sendbasket.pl +++ b/opac/opac-sendbasket.pl @@ -138,6 +138,7 @@ if ( $email_add ) { if ( $template_res =~ /
(.*)/s ) { $email_header = $1; $email_header =~ s|\n?(.*)\n?|$1|; + $email_header = encode_qp($email_header); } my $email_file = "basket.txt"; @@ -149,7 +150,7 @@ if ( $email_add ) { if ( $template_res =~ /(.*)/s ) { $body = $1; $body =~ s|\n?(.*)\n?|$1|; - $body = encode("UTF-8", encode_qp($body)); + $body = encode_qp($body); } $mail{body} = $body; diff --git a/opac/opac-sendshelf.pl b/opac/opac-sendshelf.pl index 80b54e2..fb1902c 100755 --- a/opac/opac-sendshelf.pl +++ b/opac/opac-sendshelf.pl @@ -128,6 +128,7 @@ if ( $email ) { ? $1 : "no subject"; my ($email_header) = $template_res =~ /
\n(.*)\n?/s; + $email_header = encode_qp($email_header); my $email_file = $template_res =~ /\n(.*)\n?/s ? $1 diff --git a/virtualshelves/sendshelf.pl b/virtualshelves/sendshelf.pl index 37a98ec..91d3e20 100755 --- a/virtualshelves/sendshelf.pl +++ b/virtualshelves/sendshelf.pl @@ -123,7 +123,7 @@ if ( $email ) { my $email_header = ""; if ( $template_res =~ /
\n(.*)\n/s ) { - $email_header = $1; + $email_header = encode_qp($1); } my $email_file = "basket.txt"; @@ -131,7 +131,9 @@ if ( $email ) { $email_file = $1; } - if ( $template_res =~ /\n(.*)\n/s ) { $body = encode_qp($1); } + if ( $template_res =~ /\n(.*)\n/s ) { + $body = encode_qp($1); + } my $boundary = "====" . time() . "===="; -- 1.7.7.6