diff options
Diffstat (limited to 'FS/FS/Misc.pm')
-rw-r--r-- | FS/FS/Misc.pm | 14 |
1 files changed, 10 insertions, 4 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>', ], |