Search code examples
javasearchemailgmailimap

Need a way to search mail for a message id using imap


I am using Java Mail api to access a gmail account (not fixed). I need to search all mails for a given Mail id (). The search should terminate on the FIRST occurence of the message with given ID (Optimization : only a single mail should exist with the given id)

i would of course would like to skip the "All mail" folder.

The simplest method is to do :

  1. Get Default folder
  2. Get all folders in default.
    1. Search using MessageIDTerm in current folder
    2. if message was not found, repeat step2 recursively for sub folders
    3. else return found folder.

This causes a lot of wasted server calls that are unnecessary, does any one have a more optimal approach?


Solution

  • folder.list("*");
    

    This is a method to return recursively all list of folders. So I would have to run just 1 loop for folders!! And of course one loop for every message found in the search.