Consegui fazer isso baseado neste codigo que vi em outro fórum
[code]public void recebe() throws NoSuchProviderException, MessagingException {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
final String SSL_FACTORY = “javax.net.ssl.SSLSocketFactory”;
Properties props = System.getProperties();
props.setProperty(“mail.pop3.socketFactory.class”, SSL_FACTORY);
props.setProperty(“mail.pop3.socketFactory.fallback”, “false”);
props.setProperty(“mail.pop3.port”, “995”);
props.setProperty(“mail.pop3.socketFactory.port”, “995”);
Session session = Session.getDefaultInstance(props,null);
URLName urln = new URLName(“pop3”,“smtp.gmail.com”,465,null,
"username@gmail.com", “senha”);
Store store = session.getStore(urln); // poderia ser imap também
// conectar a caixa postal
store.connect(mailSMTPServer, from, senha);
Folder fldr = store.getFolder("INBOX");
fldr.open(Folder.READ_WRITE);
int count = fldr.getMessageCount();
JOptionPane.showMessageDialog(this, count+" Menssage Inbox", “total messages”, JOptionPane.INFORMATION_MESSAGE);
for(int i = 1; i <= count; i++) {
// Get a message by its sequence number
Message m = fldr.getMessage(i);
// Get some headers
Date date = m.getSentDate();
Address [] from = m.getFrom();
String subj = m.getSubject();
String mimeType = m.getContentType();
message.setText("REMETENTE: "+from[0].toString()+ " ASSUNTO: "+subj );
System.out.println(date + "\t" + from[0] + "\t" +
subj + "\t" + mimeType);
}
}[/code]
Neste exemplo, ele verificar o quantidade de email na caixa de entrada,
pra eu ficar recebendo os novos email que chegavam, numa thread fiquei atualizando o Folder que representa sua caixa de entrada
e comparando o valor contador, quando tivesse diferente é por que chegou um novo email, o número do contado será o indice do novo email,
ai você poderá acessa-lo. O email é o objeto Message.
Espero ter ajudado.