Como funciona o email?
Todos nós sabemos como funciona o email, certo? Basta eu abrir o programa o meu leitor de email, clicar em "Obter mensagens" ou algo parecido, e elas aparecem aqui. Depois, basta clicar em "Nova mensagem" ou "Responder" e escrever o que quero. Ao clicar em enviar, elas vão aparecer no computador do destinatário. Simples. É assim que funciona o e-mail!
De um ponto de vista extremamente simplístico, é assim. Mas, como funciona a parte técnica? Como os servidores conversam entre si? Como uma mensagem sai da minha máquina e vai parar na de minha namorada?
Explicar um pouco disto é a intenção deste artigo. Vamos começar pelo começo... Esse artigo é um pouco extenso, com muitos conceitos e não é muito fácil compreendê-lo logo na primeira leitura. Não se preocupe em pegar todos os detalhes de uma só vez. Os conceitos aqui explicados servem para todos os serviços disponíveis na Internet, desde que sejam efetuadas as devidas substituições.
Protocolos
Protocolos são convenções, maneiras de programas e computadores conversarem. Há diversos protocolos, com finalidades parecidas ou completamente diferentes. Imagine um protocolo como um idioma.
Assim como para duas pessoas conversarem e entenderem-se é necessário que falem o mesmo idioma, para dois computadores conversarem e entenderem-se é necessário que usem o mesmo protocolo.
Há protocolos para enviar mensagens de correio eletrônico, para receber mensagens de correio eletrônico (veremos que são coisas distintas, ainda neste artigo), para o envio de mensagens de ICQ ou Yahoo! Messenger, para o acesso a sites na internet, transferência de arquivos, e muitas outras funções.
Um exemplo cotidiano é o famoso "www". Para seu browser conseguir baixar uma página na internet, ele usa um protocolo chamado HTTP, que é justamente o que aparece antes do nome do site, na barra de seu browser. Para informações seguras, é necessário informar a ele que desejamos essa segurança, usando o protocolo HTTPS.
Para o e-mail, temos algumas alternativas de protocolos:
- Envio de mensagens
- SMTP
- ESMTP
- BSMTP
- UUCP
- outros
- Recebimento de mensagens
- POP
- IMAP
O protocolo mais comum para o envio é o SMTP. Esse protocolo é definido por um documento chamado de RFC (do inglês Request For Comments, que significa "solicitação de comentários") e que é usado como uma das maneiras de se regulamentar a Internet (ela não é tão caótica quanto parece :-)).
Especificamente, o protocolo SMTP é regulamentado pela RFC 2821, que define comandos e seqüências de comandos, bem como todas as informações válidas que podem ser colocadas nas mensagens
Estamos simplificando um pouco as coisas, pois na verdade é mais RFCs regulamentando todo o processo. Essa simplificação, entretanto, não prejudica em nada o compreendimento do sistema.
Para o recebimento de mensagens, o protocolo mais comum é o POP. Em sua versão 3, ele é mais conhecido como POP3. É regulamentado pela RFC 1939.
Endereços IP e Portas
É comum, também, cada protocolo estar associado a um ou mais programas que o tratam. Estes programas possuem uma espécie de endereçamento na máquina servidora, e isso permite a vários programas estarem configurados em uma mesma máquina.
De modo que uma máquina consiga conversar com outra, os nomes que conhecemos como www.g2ctech.com devem ser convertidos para números que os computadores entendam. Esses números são chamados de "endereço IP".
Podemos fazer uma associação com uma rua. Cada endereço IP corresponde a uma casa específica. Mas, numa casa podem existir vários moradores. E cada um é diferente e pode ser chamado independentemente do outro.
Nos computadores, os serviços seriam como as pessoas. Cada serviço é um programa. E, cada programa possui além do seu endereço um nome (o próprio serviço é o nome) e um local onde ele espera receber mensagens de outros que falem o mesmo protocolo. Esse local é chamado de "porta" (do inglês port).
Para nos comunicarmos com um servidor que usa o protocolo SMTP nosso computador, além do endereço IP do servidor de destino, precisa saber também qual é a porta que está recebendo esse tipo de conexão.
Há um grupo de pessoas responsáveis por especificar qual porta pertence a cada serviço, de modo que só de sabermos o protocolo desejado, já seja possível darmos um chute com 99,9999% de certeza de que iremos acertar. Esse grupo é a IANA.
Para o SMTP, a porta é a de número 25. Para o POP3 é a de número 110. E para o IMAP é a de número 220.
Máquinas rodando os sistemas operacionais Linux ou FreeBSD possuem um arquivo chamado services, no diretório /etc, que contém uma listagem das portas conhecidas nestes sistemas. Usuários de outros sistemas podem consultar a própria IANA a respeito dos números designados para cada serviço. Só para terem uma idéia da quantidade de serviços, existem 65535 portas diferentes em cada computador, seja ele um servidor ou um computador doméstico.
Mas, e o email? Como funciona o email?
Ao enviarmos uma mensagem, nosso programa de email precisa conectar-se a um servidor SMTP. Para isso, ele irá conectar-se à porta 25 do servidor de seu provedor e, de acordo com as especificações do protocolo SMTP, enviar sua mensagem.
O servidor do provedor irá, então, inserir alguns dados em uma parte da mensagem conhecida como "cabeçalho". Esses dados, geralmente, só interessam a administradores ou aos próprios servidores.
O servidor do provedor irá, ainda, verificar todos os destinatários de sua mensagem e conectar-se à porta 25 de cada um dos outros servidores, que irão novamente inserir mais informações no cabeçalho da mensagem, e ou entregá-las ao destinatário, ou repetir o processo conectando-se a outros servidores, até que o servidor final seja atingido.
Para saber para onde deve ser enviada a mensagem, é checado o domínio — ou seja, o que vem depois do símbolo "@" — do destinatário. Quando estão convertendo esse domínio para números IP, os servidores de correio eletrônico procuram uma informação especial chamada MX.
O MX de um domínio é o seu Mail eXchanger, ou seja, a máquina responsável por receber e enviar mensagens de correio eletrônico para a Internet.
Caso o destinatário não possua um MX, será tentada uma conexão direta na porta 25 da máquina que tem o mesmo nome do domínio.
Caso nenhuma máquina na Internet esteja esperando por conexões SMTP em sua porta 25 para esse domínio, o servidor de seu provedor lhe enviará uma mensagem de erro informando que não foi possível entregar sua mensagem.
E no servidor de destino, o que acontece?
No destino, as coisas novamente se desdobram (como é complicada essa Internet!). O servidor SMTP, também conhecido como MTA (do inglês Mail Transfer Agent ou Agente de Transferência de Mensagens) precisará gravar a mensagem em seu disco rígido, até que o outro usuário se conecte à Internet e comece a "baixar" seus emails.
O MTA, então, repassa a mensagem a um outro programinha conhecido como MDA — Mail Delivery Agent, Agente de Entrega de Mensagens ---, que as receberá e as gravará no disco rígido.
Lendo as mensagens
Com as mensagens já gravadas, quando o destinatário conectar-se à Internet e solicitar que suas mensagens sejam enviadas do servidor para seu computador, para que ele possa ler, começa o uso de outro protocolo: o POP3.
O protocolo POP3 é extremamente simples, mas muito eficiente para o que foi projetado: recebimento de mensagens.
POP vem do inglês Post Office Protocol: Protocolo de Correio.
Seu programa de email, quando vai baixar uma mensagem, conecta-se à porta 110 do servidor de seu provedor. Ali ele envia seus dados de usuário (login e senha) e solicita que as mensagens disponíveis sejam enviadas do servidor para sua máquina.
Chegando em sua máquina, seu programa as grava em seu disco rígido e mostra as mensagens selecionadas na tela.
Quando você responde à mensagem, todo o processo recomeça, e o caminho inverso entre os servidores é seguido.
Informações deste documento
Autor: Jorge Godoy
Data: 20 de setembro de 2002
Última atualização: 20 de setembro de 2002