java发送邮件,附件名称问题
我用java发送带附件的邮件,附件路径是d:/mail/mail.txt发送到邮箱后附件名称变为d_mail_mail.txt是什么原因
[解决办法]
是用javamail发吗?
MimeBodyPart类有setFileName()方法,手动设置附件名称。
[解决办法]
// 添加附件 BodyPart affixBody = new MimeBodyPart(); DataSource source = new FileDataSource(mailBody.getAffix()); // 添加附件的内容 affixBody.setDataHandler(new DataHandler(source)); // 添加附件的标题这里很重要,通过下面的Base64编码的转换可以保证你的 // 中文附件标题名在发送时不会变成乱码 sun.misc.BASE64Encoder enc = new sun.misc.BASE64Encoder(); String fileName = "=?GBK?B?" + enc.encode(mailBody.getAffixName().getBytes()) + "?="; affixBody.setFileName(fileName); multipart.addBodyPart(affixBody); }