javamail 收邮件遇到的问题及解决方法

本文主要探讨了使用JavaMail过程中常见的三个问题:处理UnsupportedEncodingException异常的方法、解决因附件过多导致的socket连接问题以及应对乱码挑战的有效策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.最烦人是乱码问题。因为不同公司的邮箱设置不一样,致至有时出现乱码。

其中还遇到挺多问题了,忘记记录下来了;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值