From d86acb18972bc027888cf2db0c2a6a34b7da2f55 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Tue, 17 Oct 2017 14:43:52 -0700 Subject: [PATCH] fix MIME::Entity usage for perl 5.18+, RT#77890 --- FS/FS/Misc.pm | 14 ++++++++++---- FS/FS/Template_Mixin.pm | 5 +++-- FS/FS/TicketSystem/RT_Internal.pm | 3 ++- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/FS/FS/Misc.pm b/FS/FS/Misc.pm index a2d1b3ed5..4d9d57beb 100644 --- a/FS/FS/Misc.pm +++ b/FS/FS/Misc.pm @@ -157,7 +157,10 @@ sub send_email { unshift @mimeparts, { 'Type' => ( $options{'content-type'} || 'text/plain' ), 'Charset' => 'UTF-8', - 'Data' => $options{'body'}, + 'Data' => ( $options{'content-type'} =~ /^text\// + ? Encode::encode_utf8( $options{'body'} ) + : $options{'body'} + ), 'Encoding' => ( $options{'content-type'} ? '-SUGGEST' : '7bit' ), 'Disposition' => 'inline', }; @@ -166,7 +169,10 @@ sub send_email { @mimeargs = ( 'Type' => ( $options{'content-type'} || 'text/plain' ), - 'Data' => $options{'body'}, + 'Data' => ( $options{'content-type'} =~ /^text\// + ? Encode::encode_utf8( $options{'body'} ) + : $options{'body'} + ), 'Encoding' => ( $options{'content-type'} ? '-SUGGEST' : '7bit' ), 'Charset' => 'UTF-8', ); @@ -377,7 +383,7 @@ sub generate_email { 'Encoding' => 'quoted-printable', 'Charset' => 'UTF-8', #'Encoding' => '7bit', - 'Data' => $data, + 'Data' => Encode::encode_utf8($data), 'Disposition' => 'inline', ); @@ -398,7 +404,7 @@ sub generate_email { ' ', ' ', ' ', - @html_data, + ( map Encode::encode_utf8($_), @html_data ), ' ', '', ], diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm index 2dcf7d0e7..7dc813993 100644 --- a/FS/FS/Template_Mixin.pm +++ b/FS/FS/Template_Mixin.pm @@ -2115,6 +2115,7 @@ Returns an argument list to be passed to L. =cut use MIME::Entity; +use Encode; sub generate_email { @@ -2191,7 +2192,7 @@ sub generate_email { if $DEBUG; # 'print_text' argument is no longer used - @text = $self->print_text(\%args); + @text = map Encode::encode_utf8($_), $self->print_text(\%args); } else { @@ -2286,7 +2287,7 @@ sub generate_email { ' ', ' ', ' ', - $html, + Encode::encode_utf8($html), ' ', '', ], diff --git a/FS/FS/TicketSystem/RT_Internal.pm b/FS/FS/TicketSystem/RT_Internal.pm index 99e7044fa..3da68d960 100644 --- a/FS/FS/TicketSystem/RT_Internal.pm +++ b/FS/FS/TicketSystem/RT_Internal.pm @@ -5,6 +5,7 @@ use vars qw( @ISA $DEBUG $me ); use Data::Dumper; use Date::Format qw( time2str ); use MIME::Entity; +use Encode; use FS::UID qw(dbh); use FS::CGI qw(popurl); use FS::TicketSystem::RT_Libs; @@ -374,7 +375,7 @@ sub create_ticket { : ( $param{'cc'} ? [ $param{'cc'} ] : [] ); my $mimeobj = MIME::Entity->build( - 'Data' => $param{'message'}, + 'Data' => Encode::encode_utf8( $param{'message'} ), 'Type' => ( $param{'mime_type'} || 'text/plain' ), ); -- 2.11.0