在javax.mail MimeMessage中解析异常

时间:2013-11-19 13:54:06

标签: java parsing mime-message

我在

中发现了同样的错误

https://forums.oracle.com/thread/2449918

根据答案,电子邮件是错误的。我的问题是,对于如何处理这个问题有什么想法吗? 如问题所述,如果我尝试发送:

  

内容类型:text / rfc822-headers;
  内容传输编码:8位

而不是

  

Content-Type:text / rfc822-headers;内容传输编码:8位

它会起作用。

通过使用属性mail.mime.contenttypehandler,我可以添加自己的类来清理Content-Type标头,但它可能有风险,因为完整的验证,正则表达式等可能会带来比解决更多的问题。 以前有人遇到过这个问题吗?它会怎么样?

任何想法都会被贬低。

1 个答案:

答案 0 :(得分:1)

根据documentation,问题是Content-Type参数结构,ti应为:

Content-Type: text/rfc822-headers; Content-Transfer-Encoding= 8bit

我刚刚创建了一个类来修复它,但我认为必须有一些更好的解决方案。 如果有人发现,请继续回答! :)

由于

public static String cleanContentType(String contentType){
        StringBuilder cleanedContentType = new StringBuilder();
        if(contentType.contains(";")){   //It contains paramenter
            cleanedContentType.append(contentType.split(";")[0]).append("; ");
            if(contentType.split(";").length > 1){
                for(int i = 1; i < contentType.split(";").length ; i++){
                    cleanedContentType.append(contentType.split(";")[i].replace(":", "=")).append("; ");
                }
            }
        } else{
            return contentType;
        }

        return cleanedContentType.toString();
    }
相关问题