Bug 12065: use encode_qp consistently when sending basket/shelf
authorMarcel de Rooy <m.de.rooy@rijksmuseum.nl>
Thu, 10 Apr 2014 12:40:01 +0000 (14:40 +0200)
committerGalen Charlton <gmc@esilibrary.com>
Fri, 9 May 2014 15:14:40 +0000 (15:14 +0000)
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 bug 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.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Cart/List sent form opac/staff works
No koha-qa errors

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>

basket/sendbasket.pl
opac/opac-sendbasket.pl
opac/opac-sendshelf.pl
virtualshelves/sendshelf.pl

index 885ee41..40547f0 100755 (executable)
@@ -122,6 +122,7 @@ if ( $email_add ) {
     if ( $template_res =~ /<HEADER>(.*)<END_HEADER>/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 =~ /<MESSAGE>(.*)<END_MESSAGE>/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;
index ca3a973..5821bea 100755 (executable)
@@ -138,6 +138,7 @@ if ( $email_add ) {
     if ( $template_res =~ /<HEADER>(.*)<END_HEADER>/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 =~ /<MESSAGE>(.*)<END_MESSAGE>/s ) {
         $body = $1;
         $body =~ s|\n?(.*)\n?|$1|;
-        $body = encode("UTF-8", encode_qp($body));
+        $body = encode_qp($body);
     }
 
     $mail{body} = $body;
index 3f9b719..852ef8d 100755 (executable)
@@ -135,6 +135,7 @@ if ( $email ) {
     if ( $template_res =~ /<HEADER>(.*)<END_HEADER>/s ) {
         $email_header = $1;
         $email_header =~ s|\n?(.*)\n?|$1|;
+        $email_header = encode_qp($email_header);
     }
 
     my $email_file = "list.txt";
@@ -146,7 +147,7 @@ if ( $email ) {
     if ( $template_res =~ /<MESSAGE>(.*)<END_MESSAGE>/s ) {
         $body = $1;
         $body =~ s|\n?(.*)\n?|$1|;
-        $body = encode("UTF-8", encode_qp($body));
+        $body = encode_qp($body);
     }
 
     my $boundary = "====" . time() . "====";
index cc3afde..9866671 100755 (executable)
@@ -126,6 +126,7 @@ if ( $email ) {
     if ( $template_res =~ /<HEADER>(.*)<END_HEADER>/s ) {
         $email_header = $1;
         $email_header =~ s|\n?(.*)\n?|$1|;
+        $email_header = encode_qp($email_header);
     }
 
     my $email_file = "list.txt";
@@ -137,7 +138,7 @@ if ( $email ) {
     if ( $template_res =~ /<MESSAGE>(.*)<END_MESSAGE>/s ) {
         $body = $1;
         $body =~ s|\n?(.*)\n?|$1|;
-        $body = encode("UTF-8", encode_qp($body));
+        $body = encode_qp($body);
     }
 
     my $boundary = "====" . time() . "====";