26 March 2010

Read mail from your gmail account using JavaMail API throught IMAP

import java.io.IOException;
import java.util.Properties;

import javax.activation.DataHandler;
import javax.mail.*;

public class Gmail
{
    public static void main(String[] args) throws IOException
    {
        Properties props = System.getProperties();
        props.setProperty("mail.store.protocol", "imaps");

        try
        {
            Session session = Session.getDefaultInstance(props, null);
            Store store = session.getStore("imaps");
            store.connect("imap.gmail.com", "bangalore.pune.india", "malay123");

            Folder inbox = store.getFolder("Inbox");
            inbox.open(Folder.READ_ONLY);
            Message messages[] = inbox.getMessages();

            for (Message message : messages)
            {
                Multipart multipart = (Multipart) message.getContent();

                for (int x = 0; x < multipart.getCount(); x++)
                {
                    BodyPart bodyPart = multipart.getBodyPart(x);
                    String disposition = bodyPart.getDisposition();

                    if (disposition != null && (disposition.equals(BodyPart.ATTACHMENT)))
                    {
                        System.out.println("Mail have some attachment : ");
                        DataHandler handler = bodyPart.getDataHandler();
                        System.out.println("file name : " + handler.getName());
                    }
                    else
                    {
                        System.out.println(bodyPart.getContent());
                    }
                }
                System.out.println("-----------------------------------------------------------------");
            }
        }
        catch (NoSuchProviderException e)
        {
            e.printStackTrace();
            System.exit(1);
        }
        catch (MessagingException e)
        {
            e.printStackTrace();
            System.exit(2);
        }
    }
}

You can download JavaMail API from the following link
http://java.sun.com/products/javamail/downloads/index.html

No comments: