Voici un exemple de code qui peut être utilisé pour se connecter à un serveur IMAP et récupérer un message donné par son Message-ID.
import java.util.Properties;
import javax.mail.Folder;
import javax.mail.Message;
import javax.mail.Session;
import javax.mail.Store;
import javax.mail.search.MessageIDTerm;
public class App
{
public static void main( String[] args ) throws Exception
{
Session imapSession = Session.getDefaultInstance(new Properties(), null);
imapSession.setDebug(false);
Store imapStore = imapSession.getStore("imap");
imapStore.connect("imap.example.com", "john", "monPassword");
Folder imapFolder = imapStore.getDefaultFolder().getFolder("INBOX");
imapFolder.open(Folder.READ_ONLY);
Message[] messages = imapFolder.search(new MessageIDTerm("<0KBN00DF4RBKI750@example.com>"));
for (Message message : messages) {
System.out.println(message.getSubject());
if (message.isMimeType("TEXT/PLAIN")){
System.out.println(message.getContent());
}
}
imapStore.close();
}
}
En utlisant Maven, il faut ajouter la dépendance suivante :
javax.mail 1.4.1