1

我正在使用 JavaMail (1.5.0) 通过 pop3 接收收件箱。其中一台服务器发送格式错误的内容类型字符串。在边界之后添加了编码。看起来像:

Content-Type: multipart/mixed; 
 boundary="=_NextPart_2rfkindysadvnqw3nerasdf";koi8-r

它会导致解析错误:

 javax.mail.internet.ParseException: Expected '=', got "null"   at
     javax.mail.internet.ParameterList.<init>(ParameterList.java:250)   at
     javax.mail.internet.ContentType.<init>(ContentType.java:114)   at
     javax.mail.internet.MimeMultipart.parse(MimeMultipart.java:580)    at
     javax.mail.internet.MimeMultipart.getCount(MimeMultipart.java:325)

在实际解析之前是否有任何可能的方法来纠正邮件流?我试图编译库的源代码来扩展功能,但这并不像它应该的那么容易(不确定在哪里解决错误修复)。

4

1 回答 1

2

请参阅 javax.mail.internet 包的 javadocs 中的 mail.mime.contenttypehandler 属性的描述。这允许您编写一个在 JavaMail 使用它之前清理 Content-Type 值的类。

当然,您应该向服务器供应商或更可能是创建邮件的邮件程序供应商报告这个虚假的标头。

于 2013-09-11T18:46:11.627 回答