javamail 收邮件遇到的有关问题及解决办法
javamail 收邮件遇到的问题及解决方法
1.java.io.UnsupportedEncodingException
当使用 getContent() 时,文本主体部分(例如主类型是“text”的主体部分)返回 Unicode 字符串对象。通常,这些主体部分内部用某些非 Unicode 字符集保持文本数据。JavaMail(通过 "text/html" DataContentHandler)试着将那些数据转换成 Unicode 字符串。基础 JDK 的字符集可用于做这种工作。如果 JDK 不支持特别的字符集,那么就引发 UnsupportedEncodingException。在这种情况下,可以使用 getInputStream() 方法来将内容作为字节流检索。
if (part.isMimeType("text/html")){ try{ context=(String) part.getContent(); } catch (UnsupportedEncodingException uex){ InputStream is = part.getInputStream(); context = inputStream2String(is);//将流转为string }
2.接收邮件多时,其中附件过多时,会出现socket 连接不上去;加上这句即可解决
props.setProperty("mail.pop3.socketFactory.fallback", "false");
3.最烦人是乱码问题。因为不同公司的邮箱设置不一样,致至有时出现乱码。
其中还遇到挺多问题了,忘记记录下来了;