Boa tarde,
Estou implementando um “servidor” proxy que recebe um pacote de um Cliente e somente encaminha o pacote recebido para o servidor de e-mail IMAP.
Ou seja, meu servidor proxy serve apenas de intermediador.
Quando configuro o MOZILLA THUNDERBIRD para conectar no meu servidor proxy (localhost, porta 2012), se a conta estiver configurada sendo POP, ela funciona corretamente. Agora, se a minha conta no THUNDERBIRD estiver configurada como IMAP, ele não recebe o pacote do meu servidor proxy, dando o seguinte erro:
javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readDataRecord(Unknown Source)
at com.sun.net.ssl.internal.ssl.AppInputStream.read(Unknown Source)
at sun.nio.cs.StreamDecoder.readBytes(Unknown Source)
at sun.nio.cs.StreamDecoder.implRead(Unknown Source)
at sun.nio.cs.StreamDecoder.read(Unknown Source)
at java.io.InputStreamReader.read(Unknown Source)
at java.io.BufferedReader.fill(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at java.io.BufferedReader.readLine(Unknown Source)
at network.RSMClient$1.run(RSMClient.java:189)
at java.lang.Thread.run(Unknown Source)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
at com.sun.net.ssl.internal.ssl.InputRecord.read(Unknown Source)
... 13 more
Pelo que li sobre o IMAP, preciso que o meu servidor proxy esteja trabalhando com uma conexão segura (SSL).
Porém para isto, preciso de uma chave pública (usada no cliente, no meu caso o THUNDERBIRD) e uma chave privada (usada no meu servidor proxy).
Isto procede, certo?
Eu estou achando que quando é configurada uma conta sendo IMAP, é obrigatório usar SSL, apesar de alguns servidores de e-mail IMAP, não utilizarem SSL, que é o caso do servidor do terra (imap.terra.com.br, porta 143).
Agradeço demais se alguém puder me ajudar.
Abraços!