Olá pessoal, estou desenvolvendo uma ferramenta para recebimento e envio de emails, bom comecei pela parte de receber os emails, e esta funcionando, só que toda vez que eu verifico os emails para receber vem todos os emails da caixa de entrada inclusive aqueles que já foram lidos e recebidos.
Minha dúvida é a seguinte como eu faço para receber apenas os emails que NÃO foram lidos ainda, emails já lidos não me interessam, quero trazer para dentro do programa e armazenar no BD apenas o emails que ainda nao foram lidos.
alguém ai desenvolveu algo parecido?
Se tiver alguma solução ou me mostrar o caminho para resolver este problema fico agradecido.
Cara, tem a classe Flags.
Nela tem exemplo de sua utilização, no caso assim:
// Check if DELETED flag is set of this message
if (m.isSet(Flags.Flag.DELETED))
System.out.println("DELETED message");
Tenta usar a Flag SEEN. Senão me engano, ela indica que a mensagem já foi lida, sendo assim, pode fazer um false e se confirmar, pode considerar a mensagem em questão como “não lida” e assim filtrar. Pode ter outras formas, mas não me recordo no momento.
[quote=nel]Cara, tem a classe Flags.
Nela tem exemplo de sua utilização, no caso assim:
// Check if DELETED flag is set of this message
if (m.isSet(Flags.Flag.DELETED))
System.out.println("DELETED message");
Tenta usar a Flag SEEN. Senão me engano, ela indica que a mensagem já foi lida, sendo assim, pode fazer um false e se confirmar, pode considerar a mensagem em questão como “não lida” e assim filtrar. Pode ter outras formas, mas não me recordo no momento.
Abraços.[/quote]
Opa desculpe a demora para responder, então eu testei dessa forma que vc disse usando a flag SEEN para ver se as mensagens ja foram lidas, só que sempre retorna false, mesmo a mensagem estando lida.
A unica maneira que encontrei até agora de não pegar emails que meu programa já leu e cadastro no BD é setando a flag DELETED como true, só que o problema é que dessa maneira o email é apagado do servidor.
message[i].setFlag(Flags.Flag.DELETED, true);
Eu queria apenas pegar as que não foram lidas e não ter que deletalas.
O protocolo que estou usando para fazer a leitura dos emails é o POP3, eu li em algum lugar que com o POP3 não é possível alterar o status dos emails, disseram que só possivel fazer essas alterações utilizando o protocolo IMAP, pois tentei fazer a alteração da Flag SEEN com IMAP mas também não consegui deu o mesmo problema do POP3, fala que eu so tenho permição de leitura, mesmo eu definindo que eu queria permição de Leitura e Gravação