2010-06-21 164 views
0

我正在編寫一個IMAP消息輪詢器(從業務應用程序中使用)。我能夠連接,遍歷收件箱中的消息,讀取它們的標題和內容,但是調用getAllRecipients()和getRecipients(Message.RecipientType.TO)總是返回null。IMAPMessage.getRecipients()和IMAPMessage.getAllRecipients()返回null

Message messages[] = inbox.getMessages(); 
    for (Message message : messages) { 
    IMAPMessage imapMessage = (IMAPMessage) message; 
     Address[] toRecipients = imapMessage.getRecipients(Message.RecipientType.TO); 
     Address[] allRecipients = imapMessage.getAllRecipients(); 

這是令人費解的。收件箱中的郵件已經與普通的郵件客戶端一起發送,所以對他們來說沒有什麼不尋常的。

IMAP服務器正在運行Dovecot。

* OK Dovecot ready. 
A0 CAPABILITY 
* CAPABILITY IMAP4rev1 SASL-IR SORT THREAD=REFERENCES MULTIAPPEND UNSELECT LITERAL+ IDLE CHILDREN NAMESPACE LOGIN-REFERRALS STARTTLS AUTH=PLAIN 
A0 OK Capability completed. 

這是在執行上述操作時(也調用imapMessage.getContent())與Wireshark捕獲的相關流量轉儲。

A3 SELECT Inbox 
* FLAGS (\Answered \Flagged \Deleted \Seen \Draft) 
* OK [PERMANENTFLAGS (\Answered \Flagged \Deleted \Seen \Draft \*)] Flags permitted. 
* 2 EXISTS 
* 0 RECENT 
* OK [UIDVALIDITY 1277135188] UIDs valid 
* OK [UIDNEXT 3] Predicted next UID 
A3 OK [READ-WRITE] Select completed. 

A4 FETCH 1 (BODYSTRUCTURE) 
* 1 FETCH (BODYSTRUCTURE ("text" "plain" ("charset" "us-ascii") NIL NIL "7bit" 12 1 NIL NIL NIL)) 
A4 OK Fetch completed. 

A5 FETCH 1 (BODY[TEXT]<0.12>) 
* 1 FETCH (BODY[TEXT]<0> {12} 
here it is 
) 
A5 OK Fetch completed. 

A6 FETCH 1 (FLAGS) 
* 1 FETCH (FLAGS (\Seen)) 
A6 OK Fetch completed. 

A7 FETCH 1 (BODY.PEEK[HEADER]) 
* 1 FETCH (BODY[HEADER] {399} 
Return-Path: <EDITED> 
Received: from EDITED; Sat, 5 Jun 2010 15:33:13 -0400 
Date: Sat, 5 Jun 2010 15:32:40 -0400 
From: EDITED 
Message-Id: <EDITED> 
Subject: Test Message 
Lines: 1 
) 
A7 OK Fetch completed. 

A8 FETCH 1 (ENVELOPE INTERNALDATE RFC822.SIZE) 
* 1 FETCH (INTERNALDATE "05-Jun-2010 15:33:32 -0400" RFC822.SIZE 411 ENVELOPE ("Sat, 5 Jun 2010 15:32:40 -0400" "Test Message" ((NIL NIL "myediteduser" "myediteddomain")) ((NIL NIL "myediteduser" "myediteddomain")) ((NIL NIL "myediteduser" "myediteddomain")) NIL NIL NIL NIL "<EDITED>")) 
A8 OK Fetch completed. 

A9 FETCH 2 (BODYSTRUCTURE) 
* 2 FETCH (BODYSTRUCTURE (("text" "plain" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 8 0 NIL NIL NIL)("text" "html" ("charset" "iso-8859-1") NIL NIL "quoted-printable" 341 9 NIL NIL NIL) "alternative" ("boundary" "----=_NextPart_000_0003_01CB1137.CCF78C80") NIL NIL)) 
A9 OK Fetch completed. 

任何提示表示讚賞。我不知道是否還有其他應該調用的內容,或者IMAP服務器中是否有設置。我已經查看了IMAPMessage的所有方法,以便在調用getRecipients()和getAllRecipients()之前有一些東西需要運行但沒有任何東西。也搜索了一段時間,發現沒有別的我應該打電話了。

回答

0

只是關閉它:這是郵件服務器設置的問題,現在已經修復。