Hi
I am need to monitor a zimbra email account using JavaMail API and do some processing when new mail is recieved. I am able to see the count of Inbox folder's messages.
But when count is changed then MessageCountEvent is not thrown.
Code : ---------------------------------------------
public void retrieveMail(String popServer, String popUser, String popPassword) {
final String FOLDER_TO_LOOK = "Inbox";
Store store = null;
Folder folder = null;
try {
Properties props = new Properties();
Session session = Session.getDefaultInstance(props, null);
store = session.getStore("pop3");
store.connect(popServer, popUser, popPassword);
folder = store.getFolder(FOLDER_TO_LOOK);
if (folder == null) {
throw new Exception("No POP3 INBOX");
}
folder.open(Folder.READ_ONLY);
System.out.println("Class MailRetriever : Message count in folder is " + folder.getMessageCount());
folder.addMessageCountListener(new MessageCountListener() {
final String SUBJECT_SHOULD_BE = "Process it from Email Server";
@Override
public void messagesAdded(MessageCountEvent event) {
System.out.println("Post class mail retiver");
try {
Message[] messages = event.getMessages();
System.out.println("Got " + messages.length + " new messages");
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Override
public void messagesRemoved(MessageCountEvent event) {
System.out.println("Class : MyMessageCountListener : Message count in folder is " + event.getMessages().length);
}
});
} catch (Exception ex) {
ex.printStackTrace();
} finally {
try {
if (folder != null) folder.close(false);
if (store != null) store.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
}
--------------------------------------------------------------
Thanks
Shashwat Anand
sanand@vmware.com shashwat.work@gmail.com