bouil.org

vendredi 11 décembre 2009

Récupérer un mail depuis un serveur IMAP avec Java

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
	mail
	1.4.1

blog comments powered by Disqus