防止文件内容中文乱码:
if (mail.getMessage() != null) {
BodyPart textBodyPart = new MimeBodyPart();
// textBodyPart.setText(mail.getMessage());
textBodyPart.setContent(mail.getMessage(), bodymode
+ ";charset=GB2312");
multi.addBodyPart(textBodyPart);
}
防止附件名称中文乱码:
if (mail.getAttachmentFile() != null) {
BodyPart fileBodyPart = new MimeBodyPart();
// fileBodyPart.setContent(mail.getAttachmentFile().toString(), bodymode
// + ";charset=GB2312");
fileBodyPart.setDataHandler(new DataHandler(mail
.getAttachmentFile()));
if (mail.getAttachmentFileName() != null) {
try {
fileBodyPart.setFileName( MimeUtility.encodeText(new String(mail.getAttachmentFileName().getBytes(), "GB2312"), "GB2312", "B"));
} catch (UnsupportedEncodingException e) {
logger.error(e);
e.printStackTrace();
}
} else {
fileBodyPart.setFileName("Default");
}
也可以用下面方法解决附件名称乱码:
BASE64Encoder enc = new sun.misc.BASE64Encoder();
bodyPart2.setFileName("=?GB2312?B?"+enc.encode(fileName.getBytes())+"?=");