Acessando manualmente o GMail via IMAP

7

Estou tentando se conectar ao gmail imap, mas não consigo executar nenhum comando após o login.

Estou executando openssl s_client -connect imap.gmail.com:993 para se conectar,

* OK Gimap ready for requests from 128.146.221.118 42if6514983iwn.40
. CAPABILITY
* CAPABILITY IMAP4rev1 UNSELECT IDLE NAMESPACE QUOTA XLIST CHILDREN XYZZY SASL-IR AUTH=XOAUTH
. OK Thats all she wrote! 42if6514983iwn.40
. LOGIN {email removed} {password removed}
* CAPABILITY IMAP4rev1 UNSELECT LITERAL+ IDLE NAMESPACE QUOTA ID XLIST CHILDREN X-GM-EXT-1 UIDPLUS COMPRESS=DEFLATE
. OK {email removed} authenticated (Success)
. CAPABILITY

ponto em que simplesmente trava com a conexão aberta. Eu estou supondo que o gmail te empurra para um nó em um cluster depois de me autenticar?

    
por Jeff Mc 26.04.2010 / 20:46

2 respostas

9

Acabei de me deparar com o mesmo problema. Use o sinalizador -crlf. Antes do login, o servidor IMAP do Gmail é menos exigente quanto aos caracteres de nova linha, eles podem ser <LF> ou <CRLF> , mas depois de fazer login, o servidor do Gmail responde apenas às linhas que terminam com <CRLF>

De acordo com a especificação do IMAP : Todas as interações transmitidas pelo cliente e servidor estão na forma de linhas, ou seja, strings que terminam com um CRLF. O receptor de protocolo de um cliente ou servidor IMAP4rev1 está lendo uma linha ou está lendo uma seqüência de octetos com uma contagem conhecida seguida por uma linha.

openssl s_client -crlf -connect imap.gmail.com:993
    
por 14.09.2010 / 04:50
-1

O servidor imap é assíncrono, então adicione o código abaixo

inbox = imapSslStore.getFolder("Inbox");
Thread.sleep(3000);
Message messages[] = null;
inbox.open(Folder.READ_ONLY);
Thread.sleep(3000);
    
por 22.02.2012 / 13:46

Tags