summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvan Kohler <ivan@freeside.biz>2017-10-17 14:44:00 -0700
committerIvan Kohler <ivan@freeside.biz>2017-10-17 14:44:00 -0700
commit3d4cedda1dabe29c2c24888a30e62472cfea8b35 (patch)
treefd66347482cee9caa4bfed36b0c90746cd49390c
parentc07b79440c6f6763c7c76c8d107c7f32d80e302e (diff)
fix MIME::Entity usage for perl 5.18+, RT#77890
-rw-r--r--FS/FS/Misc.pm14
-rw-r--r--FS/FS/Template_Mixin.pm5
-rw-r--r--FS/FS/TicketSystem/RT_Internal.pm3
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' ),
);