Pessoal, estou trabalhando em uma aplicação que precisa fazer a leitura de emails tanto POP3 quanto IMAP. Já fiz isso em PHP, mas estou precisando migrar para JAVA, porém sou novo na linguagem e não consegui encontrar algo pra fazer isso.
Alguém poderia me dar uma dica de como eu faço pra acessar os emails ou algo que eu possa usar para isso. Na verdade, nem precisa ler os emails por completo, apenas buscar os cabeçalhos.
Consegui fazer isso baseado neste codigo que vi em outro fórum
publicvoidrecebe()throwsNoSuchProviderException,MessagingException{Security.addProvider(newcom.sun.net.ssl.internal.ssl.Provider());finalStringSSL_FACTORY="javax.net.ssl.SSLSocketFactory";Propertiesprops=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");Sessionsession=Session.getDefaultInstance(props,null);URLNameurln=newURLName("pop3","smtp.gmail.com",465,null,"[email removido]","senha");Storestore=session.getStore(urln);// poderia ser imap também // conectar a caixa postal store.connect(mailSMTPServer,from,senha);Folderfldr=store.getFolder("INBOX");fldr.open(Folder.READ_WRITE);intcount=fldr.getMessageCount();JOptionPane.showMessageDialog(this,count+" Menssage Inbox","total messages",JOptionPane.INFORMATION_MESSAGE);for(inti=1;i<=count;i++){// Get a message by its sequence number Messagem=fldr.getMessage(i);// Get some headers Datedate=m.getSentDate();Address[]from=m.getFrom();Stringsubj=m.getSubject();StringmimeType=m.getContentType();message.setText("REMETENTE: "+from[0].toString()+" ASSUNTO: "+subj);System.out.println(date+"\t"+from[0]+"\t"+subj+"\t"+mimeType);}}
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.