JavaMail丢失了一些POP3邮件头,并将multipart / mixed视为text / plain

时间:2012-08-30 20:16:46

标签: java javamail pop3 email-headers

我在JavaMail 1.4.4中解析一些POP3消息时遇到了一个奇怪的问题 - Java 1.4,也在Java 1.6中。

我正在解析从Windows 2003 POP3服务邮箱中检索到的com.sun.mail.pop3.POP3Message。当我通过getAllHeaderLines()枚举并将它们与源消息进行比较时,我发现在电子邮件中间地址中删除了Reply-To标题,并且所有剩余的标题都丢失了(特别是Subject,To,In-Reply-To ,MIME-Version,Contact-Type,Return-Path和X-OriginalArrivalTime)。 getContentType()方法返回text / plain,getContent()方法将整个multipart / mixed消息作为String返回。

当我打开JavaMail调试模式时,关于消息的一切看起来都很正常并与源消息文件匹配。

任何想法都会受到赞赏。

以下是POP3邮箱中源邮件文件的片段:

Message-ID: <1345995532.54860.YahooMailNeo@web111910.mail.gq1.yahoo.com>
Date: Sun, 26 Aug 2012 08:38:52 -0700
From: Secure Comfort <securecomforttransportation@ymail.com>
Reply-To: Secure Comfort <securecomforttransportation@ymail.com>
Subject: Language & Transportation Service 
To: "xxxxxx@xxxxxx.com"
    < xxxxxx @ xxxxxx.com>
In-Reply-To: <1345995390.53486.YahooMailNeo@web111908.mail.gq1.yahoo.com>
MIME-Version: 1.0
Content-Type: multipart/mixed;
    boundary="1816409020-1433069823-1345995533=:54860"
Return-Path: securecomforttransportation@ymail.com
X-OriginalArrivalTime: 26 Aug 2012 15:39:22.0287 (UTC) FILETIME=[F6D67BF0:01CD83A0]

--1816409020-1433069823-1345995533=:54860
Content-Type: multipart/alternative;
    boundary="1816409020-520494517-1345995533=:54860"

--1816409020-520494517-1345995533=:54860
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable

以下是MimeMessage的大多数获取者:

Content ID=null
Content Language=null
Content MD5=null
Content Type=text/plain
Data Handler=javax.mail.internet.MimeBodyPart$MimePartDataHandler
Description=null
Disposition=null
Encoding=null
File Name=null
Line Count=-1
Message ID=<1345995532.54860.YahooMailNeo@web111910.mail.gq1.yahoo.com>
Received Date=null
Sent Date=Sun Aug 26 10:38:52 CDT 2012
Size=7480850
Subject=null

1 个答案:

答案 0 :(得分:0)

JavaMail的调试输出显示了什么? (如果您不想在此发布,请通过javamail_ww@oracle.com发送给我。)

JavaMail中没有标头大小限制。

可能你有一个防火墙或防病毒软件拦截与服务器的对话,并且(不小心)在邮件标题中引入了这个中断。