diff --git a/debian/patches/chinese_attach_filename_support.patch b/debian/patches/chinese_attach_filename_support.patch new file mode 100644 index 0000000..cf2f605 --- /dev/null +++ b/debian/patches/chinese_attach_filename_support.patch @@ -0,0 +1,27 @@ +--- a/sendEmail 2016-06-12 15:52:30.000000000 +0800 ++++ b/sendEmail 2016-06-12 16:06:25.000000000 +0800 +@@ -37,7 +37,8 @@ + ############################################################################## + use strict; + use IO::Socket; +- ++use Encode; ++use Encode::Locale; + + ######################## + ## Global Variables ## +@@ -922,9 +923,12 @@ + + $y = "$CRLF--$conf{'delimiter'}$CRLF"; + $y .= "Content-Type: $content_type;$CRLF"; +- $y .= " name=\"$filename_name\"$CRLF"; + $y .= "Content-Transfer-Encoding: base64$CRLF"; +- $y .= "Content-Disposition: attachment; filename=\"$filename_name\"$CRLF"; ++ ++ ++ my $utf8_fname = uc( unpack( "H*", encode('utf8' => decode( locale => $filename_name )))); ++ $utf8_fname =~ s/(..)/%$1/g; ++ $y .= "Content-Disposition: attachment; filename*=UTF-8''$utf8_fname$CRLF"; + $y .= "$CRLF"; + print $SERVER $y; + diff --git a/sendEmail b/sendEmail index 9f9392e..58e1b4f 100755 --- a/sendEmail +++ b/sendEmail @@ -37,7 +37,8 @@ ############################################################################## use strict; use IO::Socket; - +use Encode; +use Encode::Locale; ######################## ## Global Variables ## @@ -922,9 +923,12 @@ sub send_attachment { $y = "$CRLF--$conf{'delimiter'}$CRLF"; $y .= "Content-Type: $content_type;$CRLF"; - $y .= " name=\"$filename_name\"$CRLF"; $y .= "Content-Transfer-Encoding: base64$CRLF"; - $y .= "Content-Disposition: attachment; filename=\"$filename_name\"$CRLF"; + + + my $utf8_fname = uc( unpack( "H*", encode('utf8' => decode( locale => $filename_name )))); + $utf8_fname =~ s/(..)/%$1/g; + $y .= "Content-Disposition: attachment; filename*=UTF-8''$utf8_fname$CRLF"; $y .= "$CRLF"; print $SERVER $y;