Mover mensagem de Diretório com Javamail

1 resposta
lusilva1982

Olá,

Preciso fazer um processo simples de encontrar algumas mensagens no INBOX e movê-las para determinado diretório, vejam:

...
	private boolean connect(AccountMail account) throws NineconException {
		boolean conectado = false;
		Properties pp = System.getProperties();
		logger.debug("Conectando a conta de e-mail.");

		try{
			pp.put("mail.pop3.host", account.getHost());

			Authenticator auth 	= new PopAuthentication(account.getUsername(), account.getPassword());
			session 			= Session.getDefaultInstance(pp, auth);

			store = session.getStore("pop3");
			store.connect(account.getHost(), account.getUsername(), account.getPassword());

			folder = store.getFolder("INBOX");
			folder.open(Folder.READ_ONLY);

			conectado = true;

		}catch (NoSuchProviderException e){
			conectado = false;
			throw new NineconException(e);
		}catch (MessagingException e){
			conectado = false;
			throw new NineconException(e);
		}
		return conectado;
	}
...

			for( Message message : ms ){
				//
				try{

					if( BugValidation.isValidAbrilBug(message.getSubject()) ){
						/* ocultado */

						//
						if( listMsg!=null && listMsg.size()>0 ){

							Message[] moved = new Message[listMsg.size()];
							listMsg.toArray( moved );

							Folder folder = null;
							connect(am, folder, "OPEN_BUG", false);
							folder.appendMessages( moved );
							folder.close(true);
						}//

					}
					
				}catch (MessagingException e){
					throw new NineconException(e);
				}catch (IOException e){
					throw new NineconException(e);
				}

			}// for end
			logger.debug("Total Processadas : " + listMsg.size() );
		}

E retorna a seguinte mensagem de erro:

2009-03-19 16:44:22,260 [main] ERROR java.lang.Class - bug.ninecon.exception.NineconException: javax.mail.FolderNotFoundException:
 folder is not INBOX

Pelo que eu estive lendo na internet, a utilização de POP3 não permite utilizar outro diretório se não o INBOX, correta está informação? Como eu posso então fazer esta movimentação de mensagens entre diretórios?

Obrigado.

1 Resposta

T

Em vez de POP3 você pode usar IMAP, se seu servidor de email tiver acesso IMAP. É que POP3 não tem o conceito de vários “folders”.

http://java.sun.com/products/javamail/FAQ.html#pop3folder

Criado 19 de março de 2009
Ultima resposta 19 de mar. de 2009
Respostas 1
Participantes 2