Excluir mensagem pop3 server

0 respostas
rogeriosantos77

Srs, Eu tenho o seguinte problema.
PReciso criar um "robozinho" que de tempos em tempos conecta a uma conta de email pop3 (do terra) e verifica os email, dependendo do assunto da mensagem ele executa uma determinada ação.
Até ai beleza consigo fazer entretanto quando leio a mensagem e tento excluir a mensagem apagada o javamail não me permite.
Meu codigo para recebimento dos email segue abaxo

public Message[] receberEmail(String popServer, String popUser
	   , String popPassword)
	  {
	    Store store=null;
	    Folder folder=null;
	    Message[] msgs = null;
	    try
	    {
	      // -- Get hold of the default session --
	      Properties props = System.getProperties();
	      Session session = Session.getDefaultInstance(props, null);
	      // -- Get hold of a POP3 message store, and connect to it --
	      store = session.getStore("pop3");
	      store.connect(popServer, popUser, popPassword);
	      
	      // -- Try to get hold of the default folder --
	      folder = store.getDefaultFolder();
	      if (folder == null) throw new Exception("No default folder");
	      // -- ...and its INBOX --
	      folder = folder.getFolder("INBOX");
	      if (folder == null) throw new Exception("No POP3 INBOX");
	      // -- Open the folder for read only --
	      folder.open(Folder.READ_ONLY);
	      // -- Get the message wrappers and process them --
	      msgs = folder.getMessages();
	     
	    }
	    catch (Exception ex)
	    {
	      ex.printStackTrace();
	    }
	    finally
	    {
	      // -- Close down nicely --
	      try
	      {
	        if (folder!=null) folder.close(false);
	        if (store!=null) store.close();
	      }
	      catch (Exception ex2) {ex2.printStackTrace();}
	    }
	    
	    return msgs;
	  }

O Codigo que tenta apagar a mensagem é o abaixo

ReceiverMail receicerMail = new ReceiverMail();
		javax.mail.Message[] inbox = receicerMail.receberEmail("pop.sao.terra.com.br", "xxxx", "xxxx"); 
		
		for (int i=0; i<inbox.length; i++) {
			try {
				inbox[i].getFolder().open(Folder.READ_WRITE);
				String assunto = inbox[i].getSubject().toString();
				inbox[i].setFlag(Flags.Flag.DELETED, true);	//Uso esse fla porem nada acontece.			
				inbox[i].getFolder().close(true);
				inbox[i].getFolder().expunge(); // Este método retorna o erro javax.mail.MethodNotSupportedException: Expunge not supported
				
				if (assunto.equalsIgnoreCase("Help")) {
					
					Message mensagem = new Message();
					mensagem.setEmailTo("[email removido]");
					mensagem.setEmailSender(JamesConstants.JAMES_EMAIL);
					mensagem.setSubject("O que posso fazer por você ?");
					String bodyMessage = "Envie-me resultado";
					mensagem.setBodyMessage(bodyMessage);
					SendMail sendMail = new SendMail();
					sendMail.sendEmail(mensagem);
					
				}
				
			} catch (MessagingException e) {
				e.printStackTrace();
			}
		}

Alguem ja passou por algo parecido ?
>

Criado 3 de abril de 2009
Respostas 0
Participantes 1