我用java发送带附件的邮件,附件路径是d:/mail/mail.txt发送到邮箱后附件名称变为d_mail_mail.txt是什么原因

解决方案 »

  1.   

    是用javamail发吗?
    MimeBodyPart类有setFileName()方法,手动设置附件名称。
      

  2.   


       // 添加附件              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);           }