Enviando uma Mensagem
Vamos agora estudar o que acontece a partir do momento em que você digita uma mensagem no seu programa de e-mail e clica no botão enviar.
A partir desse momento, vai entrar em ação um protocolo chamado SMTP (Simple Mail Transfer Protocol, que em português significa Protocolo Simples de Transferência de Correio). O SMTP é um protocolo da camada de aplicação que utiliza o TCP como protocolo de transporte para transmitir suas informações. Por padrão um servidor de e-mail escuta na porta 25.
Além disso, o SMTP é um protocolo baseado em texto, o que significa que os comandos trocados entre duas máquinas falando SMTP são palavras, como por exemplo: ehlo, mail from, e data.
O SMTP é um protocolo apenas para envio de e-mail. O recebimento/leitura do e-mail é feito por outro protocolo, como o IMAP ou POP3. Portanto, embora você utilize o mesmo programa para enviar e receber e-mails, essas tarefas são independentes e utilizam protocolos diferentes.
Utilizaremos como base para nossas explicações a Figura 2, assumindo que um usuário da máquina cliente enviou um e-mail para o endereço prof@gmail.com.
Além disso, vamos assumir que a máquina cliente não faz parte da rede do gmail (ou seja, da rede de destino da mensagem). Imagine que as máquinas da rede origem são do domínio metropoledigital.ufrn.br.
Os passos a serem realizados para o envio de um e-mail usando SMTP, conforme identificados na Figura 2 com os números de 1 a 6, são:
- Após o usuário digitar o e-mail e clicar em enviar, o programa cliente prepara a mensagem no formato padrão e abre uma conexão TCP na porta 25 do servidor de e-mail para o qual ele está configurado (normalmente, é o servidor de e-mail de sua própria empresa). Ele envia então a mensagem para este servidor. Portanto, observe que quando o programa cliente diz que enviou a mensagem, na verdade ele está dizendo que a enviou para o servidor que ele utiliza, e não para o servidor de destino do e-mail.
- O servidor de e-mail verifica se a mensagem que recebeu é para ele. Cada servidor é configurado para servir a um (ou mais) domínio(s). No nosso exemplo, o servidor de e-mail onde se encontra a seta com o identificador “2” é responsável pelos e-mails do domínio metrolopedigital.ufrn.br.Portanto, ao receber a mensagem para o endereço prof@gmail.com, ele vê que não é o responsável por esse domínio. Se fosse, ele verificaria se o usuário realmente existia e gravava a mensagem no disco (na caixa de e-mail do usuário). Como não é o responsável, o passo 3 é executado.
- O servidor vai então reencaminhar o e-mail. Para isso, ele utiliza o DNS para descobrir quem é o servidor de e-mail desse domínio (@gmail.com). Lembre-se de que na Aula 8 você viu que o DNS possui um registro do tipo MX que informa quem é o servidor de e-mail de um domínio. Cada empresa cadastra no seu servidor de DNS um registro MX com essa informação.
- O servidor recebe a resposta do DNS informando que o endereço IP do servidor de e-mail do domínio gmail.com é 74.125.65.27. Lembre-se que quem vai responder essa pergunta é o servidor de DNS daquele domínio.
- O servidor de e-mail origem (que está na rede metrópole digital) conecta então no servidor de e-mail do domínio do destinatário do e-mail, e envia a mensagem. Essa transmissão também usa o protocolo SMTP. Veja que esse passo e o passo 1 usam SMTP. As mensagens trocadas nessas duas fases são iguais. Portanto, não existe diferença quando um cliente envia uma mensagem para um servidor, ou quando um servidor envia uma mensagem para outro servidor.
- Ao receber a mensagem, o servidor de e-mail do domínio gmail.com verifica se ele é o responsável pelo domínio do endereço contido na mensagem (mesmo procedimento que foi feito no passo 2). Como a mensagem é para prof@gmail.com, o servidor é o responsável por ele. Sendo assim, o servidor verifica se o usuário prof existe na máquina. Caso exista, o passo 7 é executado. Caso não exista uma mensagem de erro é enviada ao remetente da mensagem.
- O servidor de e-mail chama um programa auxiliar que grava a mensagem na caixa de correio do usuário no disco rígido da máquina.
Existem diversos softwares servidores de e-mail, entre os quais podemos citar: Postfix, Qmail, Exim4 e Sendmail.
Veja aqui a explicação em vídeo sobre como acontece em uma transmissão de um e-mail.