2012-08-30 67 views
4

我在解析JavaMail 1.4.4中的某些POP3消息時出現了一個奇怪的問題 - 也是在Java 1.6中的Java 1.4。JavaMail正在丟失一些POP3消息標題,並將多部分/混合爲文本/純文本

我解析從Windows 2003 POP3服務郵箱檢索到的com.sun.mail.pop3.POP3Message。當我通過getAllHeaderLines()枚舉並將它們與源消息進行比較時,我發現Reply-To頭在中間電子郵件地址中被截斷,並且所有剩餘的頭文件都丟失了(特別是Subject,To,In-Reply-To,MIME-Version ,聯繫類型,返回路徑和X-OriginalArrivalTime)。 getContentType()方法返回text/plain,並且getContent()方法將整個多部分/混合消息作爲字符串返回。

當我打開JavaMail調試模式時,有關消息的所有內容看起來都很正常,並與源消息文件相匹配。

任何想法,將不勝感激。

這裏是從POP3郵箱的源消息文件的一個片段:

Message-ID: <[email protected]> 
Date: Sun, 26 Aug 2012 08:38:52 -0700 
From: Secure Comfort <[email protected]> 
Reply-To: Secure Comfort <[email protected]> 
Subject: Language & Transportation Service 
To: "[email protected]" 
    < xxxxxx @ xxxxxx.com> 
In-Reply-To: <[email protected]> 
MIME-Version: 1.0 
Content-Type: multipart/mixed; 
    boundary="1816409020-1433069823-1345995533=:54860" 
Return-Path: [email protected] 
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=<[email protected]il.gq1.yahoo.com> 
Received Date=null 
Sent Date=Sun Aug 26 10:38:52 CDT 2012 
Size=7480850 
Subject=null 
+0

我有同樣的問題,只升級到最新的'javax.mail-api' 1.5.3解決了它。 – user1516873

回答

0

什麼從JavaMail的顯示輸出的調試? (如果您不想在此處發佈,請發送至[email protected]。)

JavaMail中沒有標頭大小限制。

可能你有一個防火牆或防病毒軟件攔截與服務器的對話和(意外)在消息標題中引入此中斷。

+0

謝謝,我給你發了部分日誌。 –

+0

非常感謝Bill。 解決方案是添加mail.pop3.disabletop = true會話屬性。 –

+0

只是要清楚,這是由於服務器中的一個錯誤,它將截斷TOP命令返回的數據。禁用使用TOP命令可以解決服務器中的錯誤。 –

相關問題