在发送带有附件的邮件中,遇到了附件中文名乱码的问题,现已解决。只谈解决方法,具体原理解析请参考文章底部连接。html
主要遇到的问题有两个:java
解决方案:apache
1.解决第一个的问题是用MimeUtility.encodeText()进行解码this
attach.setName(MimeUtility.encodeText(f.getName()));
2.解决第二个问题设置了一个系统属性(该属性最好是在声明对象前设置,否则有可能无效的).net
System.getProperties().setProperty("mail.mime.splitlongparameters", "false");
代码示例:code
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.ArrayList; import java.util.List; /** * Class <code>Object</code> is the root of the class hierarchy. * Every class has <code>Object</code> as a superclass. All objects, * including arrays, implement the methods of this class. * * @author Administrator * @version 1.0 * @see * @since JDK1.7 * <p> * History * Created by Administrator on 2018/2/2 0002. */ public class MailTest { public static void main(String[] args) throws IOException { System.getProperties().setProperty("mail.mime.splitlongparameters", "false"); HtmlEmail email = new HtmlEmail(); email.setHostName("邮箱主机"); email.setAuthentication("发送者邮箱","密码"); email.setCharset("UTF-8"); try { String[] receivers = new String[]{"接收者邮箱1","接收者邮箱2"}; for (String receiver : receivers) { email.addTo(receiver.trim()); } email.setFrom("发送者邮箱","234234324234"); email.setSubject("test"); email.setMsg("<html><div style=\"background:red;\">尼玛嗨</div></html>"); List<String> list = new ArrayList<String>(); list.add("C:\\Users\\Administrator\\Downloads\\1111_滴滴出行发单是对方水在发送附件水电费水电费水电费水电费是的防守打法水电费水电费水电费水电费是的防守打法水电费水电费水电费水电费是的在发送附件水电费水电费水电费水电费是的防守打法水电费水电费水电费水电费是的防守打法水电费水电费水电费水电费是的电费水电费sdfsdfs是的s.pdf"); if (!CollectionUtils.isEmpty(list)) { for (String attachment : list) { EmailAttachment attach = new EmailAttachment(); File f = new File(attachment); attach.setName(f.getName()); attach.setURL(new URL("附件连接")); email.attach(attach); } } String result = email.send(); }catch (Exception e){ e.printStackTrace(); } } }
参考连接:htm
http://blog.csdn.net/wty19/article/details/50607411对象
http://blog.csdn.net/albert0707/article/details/69284700blog