我正在尝试发送主题、邮件正文和附件文件名中可能包含 UTF-8 字符的邮件。
我能够发送 UTF-8 字符作为主题和消息正文的一部分。但是,当我发送具有 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));
它运行良好。谢谢大家。
如果 MIME 标头(如
Subject
或Content-Disposition
)包含非 ascii 字符,则它们必须进行 mime 编码。编码是“
quoted printable
”或“base64
”。我推荐quoted-printable
。见这里: Java: Encode String in quoted-printable