Tenho o seguinte codigo e não consigo fazer um metodo para receber os arquivos anexados.
Com esse codigo abaixo quando peço para imprimir o getContent se o e-mail tiver algum arquivo anexado ele retorna algo como javax.mail.internet.MimeMultipart@dd20f6 se não tiver anexo ele mostra a mensagem normalmente.
Se alguem puder ajudar agradeço pela atenção.
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.security.Security;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.*;
import javax.mail.internet.InternetAddress;
public class RecebeMail {
public static void main(String args[]) throws Exception {
Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
new RecebeMail().recebeMSG();
}
public void recebeMSG() throws MessagingException {
Properties props = new Properties();
props.put("mail.pop3.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.pop3.socketFactory.fallback", "false");
props.put("mail.store.protocol", "pop3");
Session session = Session.getDefaultInstance(props,null);
Store store = session.getStore("pop3");
//Estabelece conexão
store.connect("pop.gmail.com",995, "USUARIO", "SENHA");
//Obtem a pasta e a abre
Folder folder = store.getFolder("INBOX");
folder.open(Folder.READ_ONLY);
//Obtem mensagens
Message msg[] = folder.getMessages();
for (int i = 0; i < msg.length; i++){
try {
System.out.println("MENSAGEM:" + i);
System.out.println("NOME: " + ((InternetAddress) msg[i].getFrom()[0]).getPersonal() + "\n" +
"FROM: " + ((InternetAddress) msg[i].getFrom()[0]).getAddress());
System.out.println("DATA DE ENVIO: " + msg[i].getSentDate());
System.out.println("ASSUNTO "+msg[i].getSubject());
System.out.println("CONTEUDO " +msg[i].getContent());
System.out.println("FIM DA MENSAGEM: " + i);
} catch (MessagingException ex) {
ex.printStackTrace();
} catch (IOException ex) {
ex.printStackTrace();
}
}
folder.close(false);
store.close();
}
}