如何使用java中的Forntend消息ID通过javax mail从gmail中读取电子邮件

时间:2014-05-23 07:20:26

标签: javax.mail gmail-contextual-gadgets

我是使用gmail上下文小工具来阅读我的应用程序中的电子邮件,我使用了messageid提取器来回复消息,但是现在我可以使用带有前端消息ID的javax邮件获取该电子邮件。

1 个答案:

答案 0 :(得分:0)

不是没有直接,但你可以使用一些java,有一个api可以解决你的问题,它的速度很慢。

你可以在这里找到它

https://code.google.com/p/java-gmail-imap/

我的代码:

IMAPFolder folder = (IMAPFolder) store.getFolder("[Gmail]/All Mail");

    FetchProfile fp = new FetchProfile();
    fp.add(FetchProfile.Item.ENVELOPE);
    fp.add(IMAPFolder.FetchProfileItem.X_GM_THRID);
    fp.add(IMAPFolder.FetchProfileItem.X_GM_MSGID);


    if (folder != null) {
        folder.open(Folder.READ_ONLY);
        folder.fetch(folder.getMessages(), fp);

        GmailMessageIDTerm messageID_term = new GmailMessageIDTerm(Long.parseLong(msgId, 16)+"");
        com.google.code.javax.mail.Message[] messageID_Meassages = folder.search(messageID_term);


        if(messageID_Meassages.length > 0){

            IMAPMessage main_Meassage = (IMAPMessage)messageID_Meassages[0];
            GmailThreadIDTerm thread_term = new GmailThreadIDTerm(main_Meassage.getGoogleMessageId() + "");
            com.google.code.javax.mail.Message[] thread_Messages = folder.search(thread_term);


            for(com.google.code.javax.mail.Message m: thread_Messages){
                IMAPMessage imapMessage = (IMAPMessage)m;
                // here is your every message of current thread 

            }

        }
    }