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
[code] 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;
}[/code]
O Codigo que tenta apagar a mensagem é o abaixo
[code]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("james@terra.com.br");
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();
}
}[/code]
Alguem ja passou por algo parecido ?
>