jakarta-mailgmail-contextual-gadgets

How to read email from gmail using Forntend message id in java via javax mail


i am usinig gmail contextual gadget to read email in my application, i have used messageid extractor to retriveve message but tat gives me frontend message id now how can i get that email using javax mail with frontend message id.


Solution

  • No not directly, but you can if you use some java there is a api which can solve your problem and its slow.

    you can find it here

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

    MY CODE:

    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 
    
                }
    
            }
        }