JavaMail正在丢失一些POP3消息头,并将多部分/混合消息视为文本/普通消息
我在分析JavaMail 1.4.4-Java1.4中的一些POP3消息时遇到了一个奇怪的问题,同样在Java1.6中 我正在分析从Windows 2003 pop3服务邮箱检索到的JavaMail正在丢失一些POP3消息头,并将多部分/混合消息视为文本/普通消息,java,jakarta-mail,pop3,email-headers,Java,Jakarta Mail,Pop3,Email Headers,我在分析JavaMail 1.4.4-Java1.4中的一些POP3消息时遇到了一个奇怪的问题,同样在Java1.6中 我正在分析从Windows 2003 pop3服务邮箱检索到的com.sun.mail.pop3.pop3消息。当我通过getAllHeaderLines()枚举并将它们与源消息进行比较时,我看到回复标题在电子邮件地址的中间被切断,所有剩余的标题都丢失了(具体来说,以MIME版本、联系人类型、返回路径和X-OriginalArrivalTime作为回复)。getContentT
com.sun.mail.pop3.pop3消息。当我通过getAllHeaderLines()
枚举并将它们与源消息进行比较时,我看到回复标题在电子邮件地址的中间被切断,所有剩余的标题都丢失了(具体来说,以MIME版本、联系人类型、返回路径和X-OriginalArrivalTime作为回复)。getContentType()
方法返回text/plain,而getContent()
方法将整个多部分/混合消息作为字符串返回
当我打开JavaMail调试模式时,消息的所有内容看起来都很正常,并且与源消息文件相匹配
任何想法都将不胜感激
以下是POP3邮箱中源邮件文件的一个片段:
消息ID:
日期:2012年8月26日星期日08:38:52-0700
来自:安全舒适
答复:安全舒适
主题:语言与交通服务
至:xxxxxx@xxxxxx.com"
答复:
MIME版本:1.0
内容类型:多部分/混合;
boundary=“1816409020-1433069823-1345995533=:54860”
返回路径:securecomforttransportation@ymail.com
X-OriginalArrivalTime:2012年8月26日15:39:22.0287(UTC)文件时间=[F6D67BF0:01CD83A0]
--1816409020-1433069823-1345995533=:54860
内容类型:多部分/备选;
boundary=“1816409020-520494517-1345995533=:54860”
--1816409020-520494517-1345995533=:54860
内容类型:文本/纯文本;charset=“iso-8859-1”
内容传输编码:引用可打印
以下是mimessage的大多数getter:
Content-ID=null
内容语言=空
内容MD5=null
内容类型=文本/普通
Data Handler=javax.mail.internet.MimeBodyPart$MimePartDataHandler
Description=null
处置=null
编码=空
文件名=空
行计数=-1
消息ID=
接收日期=空
发送日期=2012年8月26日星期日10:38:52 CDT
尺寸=7480850
Subject=null
JavaMail的调试输出显示了什么?(如果您不想在这里发布,请通过javamail发送给我_ww@oracle.com.)
JavaMail中没有头大小限制
可能您的防火墙或防病毒软件正在拦截与服务器的对话,并且(意外地)在邮件标题中引入了此中断。谢谢,我已经向您发送了部分日志。非常感谢您,比尔。解决方案是添加mail.pop3.disabletop=true会话属性。需要明确的是,这是由于服务器中的一个错误导致的,它正在截断TOP命令返回的数据。禁用TOP命令可以解决服务器中的错误。我也有同样的问题,只升级到最新的javax.mail api
1.5.3解决了这个问题。