我用java发送带附件的邮件,附件路径是d:/mail/mail.txt发送到邮箱后附件名称变为d_mail_mail.txt是什么原因
------解决方案--------------------------------------------------------
是用javamail发吗?
MimeBodyPart类有setFileName()方法,手动设置附件名称。
------解决方案--------------------------------------------------------
- Java code
// 添加附件 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); }