¿Hay algún buen ejemplo de código corto que simplemente lea un nuevo mensaje de gmail?

He estado tratando de escribir una aplicación que analiza periódicamente el contenido de los mensajes de gmail. He leído las preguntas frecuentes de JavaMail y he visto varios ejemplos en el paquete de descarga de JavaMail, pero no he podido hacer que esto funcione. El siguiente código actualmente causa el siguiente error de gmail:

El host no está resuelto: imaps.gmail.com:993

También he intentado imap.gmail.com:143 pero obtengo:

El host no está resuelto: imap.gmail.com:143

Cualquier ayuda o consejo sería muy apreciado. GMailReader es la clase que estoy usando para intentar devolver mensajes imap de gmail:

public class GMailReader extends javax.mail.Authenticator { 
    private String mailhost = "imaps.gmail.com"; 
    private String user; 
    private String password; 
    private Session session; 
    public GMailReader(String user, String password) { 
        this.user = user; 
        this.password = password; 
        Properties props = new Properties(); 
        props.setProperty("mail.transport.protocol", "imaps"); 
        props.setProperty("mail.imaps.host", mailhost); 
        props.put("mail.imaps.auth", "true"); 
        props.put("mail.imaps.port", "993"); 
        props.put("mail.imaps.socketFactory.port", "993"); 
        props.put("mail.imaps.socketFactory.class", 
                  "javax.net.ssl.SSLSocketFactory"); 
        props.put("mail.imaps.socketFactory.fallback", "false"); 
        props.setProperty("mail.imaps.quitwait", "false"); 
        session = Session.getDefaultInstance(props, this); 
    } 
    public synchronized Message[] readMail() throws Exception { 
        try { 
            Store store = session.getStore("imaps"); 
            store.connect("imaps.gmail.com", user, password); 
            Folder folder = store.getFolder("INBOX"); 
            folder.open(Folder.READ_ONLY); 
            Message[] msgs = folder.getMessages(1, 10); 
            FetchProfile fp = new FetchProfile(); 
            fp.add(FetchProfile.Item.ENVELOPE); 
            folder.fetch(msgs, fp); 
            return msgs; 
        } catch (Exception e) { 
            Log.e("readMail", e.getMessage(), e); 
            return null; 
        } 
    } 
}

Respuestas a la pregunta(4)

Su respuesta a la pregunta