JavaMail使用IMAP读取最近未读的邮件

我需要从Gmail检索未读邮件。我正在使用Java Mail

API。默认情况下,此API从最早的邮件检索到最新的邮件。但是我需要先检索最近的邮件。可能吗?提前致谢。

回答:

这是例子。不要忘记在类路径中添加javax.mail。

import javax.mail.*;

import javax.mail.search.FlagTerm;

import java.util.*;

public class GmailFetch {

public static void main( String[] args ) throws Exception {

Session session = Session.getDefaultInstance(new Properties( ));

Store store = session.getStore("imaps");

store.connect("imap.googlemail.com", 993, "username@gmail.com", "password");

Folder inbox = store.getFolder( "INBOX" );

inbox.open( Folder.READ_ONLY );

// Fetch unseen messages from inbox folder

Message[] messages = inbox.search(

new FlagTerm(new Flags(Flags.Flag.SEEN), false));

// Sort messages from recent to oldest

Arrays.sort( messages, ( m1, m2 ) -> {

try {

return m2.getSentDate().compareTo( m1.getSentDate() );

} catch ( MessagingException e ) {

throw new RuntimeException( e );

}

} );

for ( Message message : messages ) {

System.out.println(

"sendDate: " + message.getSentDate()

+ " subject:" + message.getSubject() );

}

}

}

以上是 JavaMail使用IMAP读取最近未读的邮件 的全部内容, 来源链接: utcz.com/qa/431265.html

回到顶部