Applies to:
NA
Description:
Occurs while encoding and decoding filenames in non-ASCII character sets
Cause:
The filename is stored as a parameter in MIME headers. Encoded filenames of the form =?ISO-8859-15?B?5OTkLUluZm8ucGRm?= are not part of the MIME spec. A filename of the form =?A?B?C?= is a perfectly valid filename, not an incorrectly encoded filename. JavaMail does not encoded and decode filenames by default because doing so would violate the MIME spec.
The base MIME spec does not allow for encoding parameters. RFC 2231 defines a new way to include encoded paramters, including filenames, in MIME headers. It is not compatible with the de facto way that many applications illegally encode filenames. Even though JavaMail supports RFC 2231, that alone does not allow JavaMail to interoperate with these existing programs. As far as I know, very few existing programs support RFC 2231.
If you choose to violate the MIME spec, in order to interoperate with other programs that also violate the MIME spec, JavaMail gives you all the tools you need to do so. Starting with JavaMail 1.4, setting the System properties “mail.mime.encodefilename” and “mail.mime.decodefilename” to “true” will cause JavaMail to encode and decode the filename parameter.
JAVA-Mail "filename*=" java decode, "filename="=?iso-8859-1" javamail, "non mime" javamail, alleculidae, automatic decoding javamail, blackberry filename rfc2231, blunt trauma, decode filename mime, decode in java mail, does javamail supports non mime emails, email filename encodings, encode and decode in javamail, encode file name using java mimeutility, encode javamail, encoded filenames java, encoding and decoding javamail, encoding decoding java mail ascii, encoding filename java, estradiol cream, filename="=?iso-8859-1?q?mod=5, glassfish encoding filename, glassfish mail.mime.encodefilename, how to use javamail.mimeutility properly, imeutility.encodetext(filename, java, indocin rect, iso-8859-15 javamail, iso8859 file names java 6, j, java decode filename in zip file, java email decode, java encode non ascii, java encode rfc 2231, java filename encoding, java filename encoding -zip, java mail decodestring, java mail encode file name, java mail encoding language, java mail file name decode, java mail filename, java mail filename ascii, java mail mime filename encoding, java mail mimeutility encoding, java mail only encodes and decodes filenames in nonascii character set, java mail part getfilename "=?iso-8859-1?", java mime chinese, java mime filename quoted, java mimeencode, java mimeutility encodetext, java mimeutility.encodetext chinese language support, java rfc 2231, java rfc 2231 decode, java rfc 2231 encoding, java rfc2231, java sendmail i5 106, javamail ascii error, javamail attachment not decoded, javamail attachment not properly decoded, javamail automatic encoding and decoding, javamail decode filename, javamail decode filename iso, javamail decode iso-8859-1, javamail decoding, javamail does encode/decode, javamail encode filename, javamail encode quotes =22, javamail encodetext, javamail encoding and decoding, javamail encoding corrrectly, javamail encoding filename, javamail enconding and decoding, javamail file name encoding, javamail filename, javamail filename ascii, javamail filename charset, javamail filename decode, javamail filename decodieren, javamail filename encoding, javamail filename encoding settings, javamail filename iso-8859-1, javamail filename quote, javamail filename*0*, javamail filename=?iso, javamail from encoding, javamail getfilename "mail.mime.decodefilename" not working, javamail glassfish encoding, javamail iso-8859-15, javamail mimeutility, javamail non ascii character, javamail non-ascii, javamail non-ascii attachment name, javamail only encodes and decodes filenames in non-ascii, javamail properly encode and decode filenames in non-ascii character sets, javamail rfc 2231, javamail rfc 2231 filename, javamail rfc2231, javamail search term not working properly, javamail setfilename unicode character, javamail will not automatically, javamail will not automatically decode, javax.mail getfilename "iso-8859-15", jboss javamail with non-ascii filename, lrm-00118: syntax error at '=' at the end of input, mail encode filenames, mail.mime.decodefilename, mail.mime.encodefilename, mail.mime.encodefilename config file, mail.mime.encodefilename decode, mail.mime.encodefilename does not work, mail.mime.encodefilename glassfish, mail.mime.encodefilename=true jboss, mime decode iso-8859-15?, mime filename non-ascii, mime iso-8859-15, mime not decoded properly in email, mimeutility double iso filename decode, mimeutility encode filename, mimeutility problem weblogic encoding decoding java, mimeutility.decode javamail, mimeutility.encode, mimeutility.encodetext, mimeutility.encodetext in java, mimeutility.encodetext( iso-8859-15, mimeutility.encodetext(filename,, mimeutility.encoding, mnium, prophylaxis, rfc 2231 java mail, rfc2231 java, rfc2231 java encode, sb hydrocortisone, set encoding connector glassfish, ultra balm, weblogic 10.3 mimeutility encode
Applications using earlier versions of JavaMail can use the following workaround to encode a filename:
mbp.setFileName(MimeUtility.encodeText(filename));
The workaround for decoding a filename is equally simple:
String filename = MimeUtility.decodeText(part.getFileName());