Java 发送含附件的邮件
在发送带有附件的邮件中,遇到了附件中文名乱码的问题,现已解决。只谈解决方法,具体原理解析请参考文章底部链接。 主要遇到的问题有两个: 中文乱码 中文过长导致乱码(这个一般是在超过60个字符时会出现的) 解决方案: 1.解决第一个的问题是用MimeUtility.encodeText()进行解码 attach.setName(MimeUtility.encodeText(f.getName())); 2.解决第二个问题设置了一个系统属性(该属性最好是在声明对象前设置,不然有可能无效的) System.getProperties().setProperty("mail.mime.splitlongparameters", "false"); 代码示例: import org.apache.commons.collections.CollectionUtils; import org.apache.commons.mail.EmailAttachment; import org.apache.commons.mail.HtmlEmail; import javax.mail.internet.MimeUtility; import java.io.File; import java.io.IOException; import java.net.URL; import java.util