diff options
author | Ivan Kohler <ivan@freeside.biz> | 2017-10-17 14:44:00 -0700 |
---|---|---|
committer | Ivan Kohler <ivan@freeside.biz> | 2017-10-17 14:44:00 -0700 |
commit | 3d4cedda1dabe29c2c24888a30e62472cfea8b35 (patch) | |
tree | fd66347482cee9caa4bfed36b0c90746cd49390c | |
parent | c07b79440c6f6763c7c76c8d107c7f32d80e302e (diff) |
fix MIME::Entity usage for perl 5.18+, RT#77890
-rw-r--r-- | FS/FS/Misc.pm | 14 | ||||
-rw-r--r-- | FS/FS/Template_Mixin.pm | 5 | ||||
-rw-r--r-- | 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 a2d1b3e..4d9d57b 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 { ' </title>', ' </head>', ' <body bgcolor="#ffffff">', - @html_data, + ( map Encode::encode_utf8($_), @html_data ), ' </body>', '</html>', ], diff --git a/FS/FS/Template_Mixin.pm b/FS/FS/Template_Mixin.pm index 2c094c2..f679d8e 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<FS::Misc::send_email>. =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 { ' </title>', ' </head>', ' <body bgcolor="#e8e8e8">', - $html, + Encode::encode_utf8($html), ' </body>', '</html>', ], diff --git a/FS/FS/TicketSystem/RT_Internal.pm b/FS/FS/TicketSystem/RT_Internal.pm index 99e7044..3da68d9 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' ), ); |