2010-08-19 65 views
4

在Google Mail中,我想要獲取已分配多個標籤的郵件。例如,如果在收件箱中,我們有三個電子郵件:如何使用JavaMail從Google Mail(Gmail)中讀取帶有多個標籤的電子郵件?

EMAIL_1與Label_A和Label_B

EMAIL_2與Label_A和Label_B

EMAIL_3與Label_A和Label_C

然後我要選擇那些具有Label_A和Label_B同時爲Email_1和Email_2。目前下面的代碼適用於單標籤的情況,但有沒有辦法用多個標籤來完成?謝謝。


Properties props = System.getProperties(); 
Session session = Session.getInstance(props, null); 

Store store = session.getStore("imaps"); 
store.connect("imap.gmail.com", -1, "[email protected]", "password"); 

Folder folder = store.getDefaultFolder(); 

folder = folder.getFolder("Label_A"); 
folder.open(Folder.READ_WRITE);  

int totalMessages = folder.getMessageCount(); 
int newMessages = folder.getNewMessageCount(); 
System.out.println("Total messages = " + totalMessages); 
System.out.println("New messages = " + newMessages); 

+0

我有一個非常類似的問題。我希望能夠說一條消息有兩個標籤。我可以輕鬆地從兩個文件夾中獲取消息,但我不確定將這兩個消息關聯起來的正確方法。 – GreenKiwi 2011-06-29 07:09:16

回答

2

你應該能夠做這樣的事情:

private Store store; 
private Folder Label_A; 
private Folder Label_B; 
    ... 
     Label_A = store.getFolder("Label_A"); 
     Label_B = store.getFolder("Label_B"); 
+1

你如何關聯每條消息?序列是不同的,UID是不同的,並且MessageID不能被信任在那裏或是唯一的? – GreenKiwi 2011-06-29 07:07:51

1

我最後不得不寫我自己的原料IMAP命令允許JavaMail來使用Gmail的IMAP擴展。然後這工作。

Access to Gmail labels: X-GM-LABELS

然後你的問題:folder.doCommand()與你的命令。

相關問題