Как использовать JavaMail для чтения писем с несколькими метками из Google Mail (Gmail)? - PullRequest
4 голосов
/ 19 августа 2010

В Google Mail я хотел бы получать сообщения, которым назначено несколько ярлыков.Например, если в папке «Входящие» у нас есть три электронных письма:

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, "abc@def.com", "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);

Ответы [ 2 ]

2 голосов
/ 19 августа 2010

Вы должны быть в состоянии сделать что-то вроде этого:

private Store store;
private Folder Label_A; 
private Folder Label_B; 
    ...
        Label_A = store.getFolder("Label_A"); 
        Label_B = store.getFolder("Label_B"); 
1 голос
/ 19 января 2012

В итоге мне пришлось написать собственные необработанные команды IMAP, чтобы позволить javamail использовать расширения Gmail IMAP. Тогда это работает.

Доступ к ярлыкам Gmail: X-GM-LABELS

Затем вы вводите: folder.doCommand () вашей командой.

...