views:

160

answers:

2

If I need to get inbox messages by passing request from servlets to javamail API , how can I know the protocol in which to retrieve inbox messages? Do I have to state the protocol in request URL?

I've already checked in gmail, where they haven't stated any protocol, then How can I get inbox messages based on particular protocol like: POP3 or IMAP

A: 

Receiving email using JavaMail is possible for both POP3 and IMAP. Here's an example:

Properties props = System.getProperties();
session = Session.getInstance(props, null); // get a mail session
store = session.getStore("imap"); // get relevent store type, in this case IMAP
store.connect(mailserver, username, password); // connect to mail server
defaultFolder = store.getDefaultFolder(); // get default or root folder
inboxFolder = defaultFolder.getFolder("INBOX"); // find and get INBOX folder
inboxFolder.open(Folder.READ_ONLY); // open the folder
Message[] inboxMessages = inboxFolder.getMessages(); // get all the messages

Change the store type to "pop3" in Session.getStore() for POP3 access.

Oh, btw, GMail supports both POP and IMAP - it depends on whether the user has enabled those kinds of access. If you login to your GMail account, look under 'Settings' and 'Forwarding and POP/IMAP' tab.

David Johnson
+1  A: 

The protocol is specified in the configuration properties:

mail.store.protocol=pop3

mail.pop3.host=...
...
Maurice Perry
But how can I know, I have to use IMAP protocol for any dynamically created folder like 'dusk', or for already created programmer defined folder like spam, outbox in mail application?
Dusk