O programa em java que faz o trabalho de um cliente que estabelece a comunicação com um servidor de e-mail (correio eletrônico), utilizando a porta 80 com o protocolo pop3. Através de sockets via TCP com a comunicação continua. Neste exemplo vou utilizar o servidor do Gmail.
[code]package trabalho1;
import java.io.;//importa o pacote para saída de dados.
import java.net.;//importa o pacote para comunicação via sockets.
/**
*
@author Carlinha
*/
public class Main {
/**
@param args the command line arguments
*/
public static void main(String[] args) {
BufferedReader in;//declara a entrada de dados de servidor
Socket cliente=null;//declara o socket cliente.
try{
cliente = new Socket(“pop.mail.gmail.com.br”,80);//conecta através da porta 80 com o gmail.
in = new BufferedReader(new inputStreamReader(cliente.getInputStream()));//recebe o fluxo de dados do servidor.
System.out.println("Dados recebidos:"+in.readLine()); //imprime os dados recebidos do servidor.
}
catch(Exception e)
{
System.out.print(“Erro:”+e);//imprime o erro caso ocorra.
}
// TODO code application logic here
}
}[/code]
Na linha 19, o código inputStreamReader está dando erro, o que houve???
De onde você pegou esse endereço? Não existe “pop.mail.gmail.com.br”. Ou seja, você sempre vai ter erro de socket, porque está tentando telefonar para um número que não existe, aham, você não vai achar nunca esse servidor.
Se quiser reescrever uma implementação do protocolo POP3, leia:
E as respectivas portas em que eles trabalham são 110, 143 e 25.
Agora, você sabe que as mensagens nada mais são do que texto puros, certo? Você poderia usar classes como Scanner e PrintWriter que facilitariam bastante sua vida.
Se bem que, para falar com o GMail, é bem mais complicado, porque o início da comunicação é texto puro, mas logo você tem de chavear para sockets criptografados (SSL).
O JavaMail já leva em conta esses detalhes sangrentos - eu diria até hediondos.
Se quiser brincar com sockets e protocolo POP3, recomendo testar com o James (um servidor de email escrito em Java), que não usa SSL, só para você testar seu programa. http://james.apache.org/
[quote=bezier curve]Se bem que, para falar com o GMail, é bem mais complicado, porque o início da comunicação é texto puro, mas logo você tem de chavear para sockets criptografados (SSL).
O JavaMail já leva em conta esses detalhes sangrentos - eu diria até hediondos.
Se quiser brincar com sockets e protocolo POP3, recomendo testar com o James (um servidor de email escrito em Java), que não usa SSL, só para você testar seu programa. http://james.apache.org/[/quote]
Isso é verdade. Para usar o código simples, você precisará de um servidor que aceite conexões não criptografadas (por tanto, o GMail não é uma boa opção).