日期:2014-05-17  浏览次数:20852 次

java发送邮件,附件名称问题
我用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);

           }