我正在尝试在主题,邮件正文和附件文件名中发送可能包含UTF-8字符的邮件。
我可以将UTF-8字符作为Subject和Mesage正文的一部分发送。但是,当我发送包含UTF-8字符作为附件文件名的附件时,它没有正确显示。
所以我的问题是如何将附件文件名设置为UTF-8?
以下是我的代码的一部分:
MimeBodyPart pdfPart = new MimeBodyPart();
pdfPart.setDataHandler(new DataHandler(ds));
pdfPart.setFileName(filename);
mimeMultipart.addBodyPart(pdfPart);
稍后编辑:
我替换了
pdfPart.setFileName(filename);
与
pdfPart.setFileName(MimeUtility.encodeText(filename, "UTF-8", null));
它完美无缺。 谢谢大家。
答案 0 :(得分:0)
MIME标头(如Subject
或Content-Disposition
)必须是mime编码的,如果它们包含非ascii字符。
编码是" quoted printable
"或" base64
"。我推荐quoted-printable
。
答案 1 :(得分:0)
我不知道你如何发送附件。如果通过tomcat服务器上传,可能会导致conf / server.xml中的URIEncoding值