`
andjia
  • 浏览: 3508 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

[SHOT]ClassCastException: com.sun.mail.util.BASE64DecoderStream

 
阅读更多

帮忙查了个Email接收失败的问题,Google和Baidu都没搜到,大概太简单了吧。。。

 

报错情况:java.lang.ClassCastException: com.sun.mail.util.BASE64DecoderStream incompatible with javax.mail.Multipart at ……

 

代码:Multipart mp = (Multipart) mpart.getContent();

 

以上代码是解析邮件附件的标准写法,多数邮件处理也正常,问题邮件在Outlook等客户端里也能正常处理,直接取mail服务器上的备份邮件,发现问题如下:

 

问题邮件: ……

Date: Tue, 24 Mar 2015 11:30:18 GMT From: xxx@yyy.com

To: xxx@yyy.net.cn Cc: bbb@ccc.com

Message-ID:

Subject: BLABLABLALALALA

MIME-Version: 1.0

Content-Type: application/EDIFACT; name=0798114O.96608468.608458886.1

Content-Transfer-Encoding: base64

Content-Disposition: attachment; filename=0798114O.96608468.608458886.1

下面就是base64编码的附件报文

 

正常处理的邮件

……

From: xxx@yyy.com

Date: Mon, 9 Feb 2015 11:01:22 +0800

X-MIMETrack: Serialize by Router on NSHAS01/S/AS_ at 02/09/2015 11:01:23 AM

Content-Type: multipart/mixed; boundary="=_mixed 00109A2B48257DE7_="

……

=

--=_mixed 00109A2B48257DE7_=

Content-Type: application/octet-stream; name="嘻嘻嘻.pdf"

Content-Disposition: attachment; filename="嘻嘻嘻.pdf"

Content-Transfer-Encoding: base64

……

对比发现,问题邮件没有正文,没有boundary设置,MIME 1.0的规范还没仔细研究过。可能也是程序外发的mail,后续对接收程序做改造,增加容错机制【待续】

分享到:
评论

相关推荐

    android gson 混淆代码 问题

    在Android开发中,Gson库是一个非常常用的工具,...参考博文:[链接](https://ujs-lifazhu.iteye.com/blog/1750820)提供了更多关于在Android项目中处理Gson混淆问题的详细步骤和示例,建议详细阅读以获取更深入的理解。

    java.lang.ClassCastException

    在Java编程中,`java.lang.ClassCastException`是一个运行时异常,通常发生在强制类型转换时,如果尝试将一个对象转换为其非兼容类型时就会抛出。这个异常表明在编译时可能成功的类型转换,在运行时被证明是错误的。...

    Android 简单封装一个精美、好用的菜单型PopupWindow

    在Android开发中,PopupWindow是一个非常实用的组件,它可以用于创建弹出式窗口,提供临时性的用户交互。本文将深入探讨如何在Android中简单封装一个精美、易用的菜单型PopupWindow,以满足用户界面的需求。...

    java操作xml dom dom4j sax jdom

    在Java编程中,XML(可扩展标记语言)是一种被广泛用于数据存储和交换的格式。为了处理XML文档,Java提供了多种API,其中最常用的包括DOM、SAX、DOM4J和JDOM。以下是对这些方法的详细介绍: 1. DOM(Document ...

    WanAndroid-Java:一种采用Java语言,MVVM + Retrofit + RxJava架构开发的玩Android客户端(https:www.wanandroid.com)。PS:Kotlin版(https:github.comchongyucaiyanWanAndroid-Kotlin)

    安卓系统 玩Android客户端 项目简介 整个项目采用MVVM + Retrofit + RxJava架构进行开发。 项目截图 项目版本 v1.0.0 基本功能 技术要点 采用MVVM模式开发,查看操作和业务逻辑解耦 采用DataBinding框架实现View与...

    Mybatis报错: org.apache.ibatis.exceptions.PersistenceException解决办法

    异常信息中提到`Error instantiating class com.fendo.entity.Person`,这表明在尝试实例化`Person`类时出现了问题。具体错误是`NoSuchMethodException: com.fendo.entity.Person.<init>()`,这意味着Mybatis无法...

    client-adapter.es7x-1.1.5-jar-with-dependencies.jar

    解决canal同步es报错: java.lang.ClassCastException: com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource

    jdk 1.5:1.6:1.7.zip

    1. **泛型**:泛型增加了类型安全,允许在编译时检查类型,避免了运行时的ClassCastException。 2. **枚举类型**:这是一种新的数据类型,用于定义常量集合,增强了代码的可读性和安全性。 3. **自动装箱和拆箱**...

    json-lib net.sf.ezmorph.bean.MorphDynaBean cannot be cast to xxx

    **类型转换**是Java编程中的常见操作,但是不安全的类型转换会导致`ClassCastException`。当试图将一个对象强制转换为它实际上不是的类型时,就会抛出这个异常。在你的例子中,`MorphDynaBean`不能被转换为`xxx`,...

    安卓自动轮播图 广告位

    二:保证 ImageCycleView的 父布局是LinearLayout 否则可能会报异常,比如 java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.RelativeLayout$...

    解决maven启动Spring项目报错的问题

    java.lang.ClassCastException: org.springframework.web.SpringServletContainerInitializer cannot be cast to javax.servlet.ServletContainerInitializer 出现这个报错的原因是 javax.servlet-api 在运行时将 ...

    ClassCastException如何解决.md

    ClassCastException如何解决.md

    ClassCastException解决办法.md

    ClassCastException解决办法.md

    java.util.ConcurrentModificationException 解决方法

    `java.util.ConcurrentModificationException` 是一个在 Java 中常见的运行时异常,它通常发生在多线程环境中,当一个线程正在遍历一个集合(如 `ArrayList`, `HashMap` 等),而另一个线程同时尝试修改这个集合时。...

    client-adapter.es7x-1.1.5-SNAPSHOT-jar-with-dependencies.jar

    Load canal adapter: es7 failed java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassCastException: ...canal-adapter1.1.5报错, 将client-adapter.es7x-1.1.5-SNAPSHOT-jar-with-dependencies....

    canal adapter 1.1.5 DruidDataSource 连接池异常

    java.lang.RuntimeException: java.lang.RuntimeException: java.lang.ClassCastException: com.alibaba.druid.pool.DruidDataSource cannot be cast to com.alibaba.druid.pool.DruidDataSource 可用这个jar替换...

    解决cannot be cast to javax.servlet.Filter 报错的问题

    cannot be cast to javax.servlet.Filter 报错, 原因servlet-api.jar冲突 使用maven开发web应用程序, 启动的时候报错: jar not loaded....java.lang.ClassCastException: org.springframework.web.f

    tomcat7启动或运行报错

    ### Tomcat7启动或运行时报错:`java.lang.ClassCastException: org.apache.jasper.el.ELContextImpl` #### 问题概述 在使用Tomcat7部署Web应用的过程中,可能会遇到启动或者运行时出现以下错误提示: ``` java....

    Generics_in_the_Java_Programming_Language译文

    1. 类型安全:泛型可以在编译期检查类型的正确性,避免了 ClassCastException。 2. 代码重用:泛型可以将类型参数化,使得代码可以应用于多种类型。 3. 代码简洁:泛型可以减少类型转换的代码,使得代码更加简洁。 ...

Global site tag (gtag.js) - Google Analytics