Olá meu querido aluno(a), nesse post vamos falar sobre um tópico de redes de computadores muito cobrado: o correio eletrônico. Dentro desse tema precisamos entender cada um dos componentes do correio e os protocolos envolvidos.
Vamos começar falando da arquitetura desse sistema. Um sistema de correio eletrônico é formado por três componentes principais:
- User Agent (UA)
- Message Transfer Agent (MTA)
- Message Access Agent (MAA)
O UA (User Agent) fornece serviços aos usuários em relação ao envio e recebimento de e-mails. Ou seja, ele é programa que cria, lê, responde e encaminha as mensagens de e-mails. Um UA pode ser baseado em comandos ou em interface gráfica (GUI). Exemplos de UA baseados em comandos: mail, pine e elm. Provavelmente, no seu trabalho, você usa um UA gráfico. Exemplos de UA com interfaces gráficas são: Eudora e Outlook da Microsoft.
Agora vamos falar dos endereços de emails. Provavelmente esse é outro conceito que você está familiarizado. Um endereço de e-mail é formado por duas partes. A primeira é o endereço da caixa postal e a segunda parte é o domínio do servidor de correio eletrônico. Esses nomes são separados por meio de um @.
Vejamos um exemplo:
professor.almeidajunior@gmail.com
Esse é o meu e-mail no gmail. Note que ele tem duas partes. A primeira parte é o nome da caixa. No meu caso essa caixa é professor.almeidajunior. Essa caixa é um das milhares de caixas que fica no está no servidor do gmail.
Em regra um e-mail pode enviar apenas mensagens em texto. Além disso, somente mensagens no formato ASCII NVT de 7 bits. Isso que dizer que não podemos criar uma mensagem em idiomas que não suportas o ASCII. Por exemplo, em japonês. Isso também quer dizer que não podemos enviar arquivos binários ou arquivos de vídeo, por exemplo. Ei professor! Eu consigo enviar sim!
Verdade, mas isso acontece por causa do MIME. O MIME (Multipurpose Internet Mail Extensions) é um protocolo que permite que dados não-ASCII sejam enviados em um e-mail. O MIME converte dados não-ASCII em dados ASCII e vice-versa.
Segundo Forouzan, o MIME define cinco tipos de cabeçalhos:
- MIME-Version: Este cabeçalho especifica a versão usada do MIME.
- Content-Type: Este cabeçalho define o tipo de dados usado no corpo de uma mensagem. O tipo de conteúdo e seu subtipo são separados por uma barra. Dependendo do subtipo, o cabeçalho pode conter outros parâmetros adicionais
- Content-Transfer-Encoding: Este cabeçalho define o método usado para codificar as mensagens em 0s e 1s para sua transmissão.
- Content-Id: Este cabeçalho identifica de forma exclusiva uma mensagem inteira em um ambiente com múltiplas mensagens.
- Content-Description: Este cabeçalho define se o corpo de uma mensagem é composto por imagem, áudio ou vídeo
O Content-Type define o tipo de dados usado no corpo de uma mensagem. O MIME permite sete tipos diferentes de dados. Além dos UA’s, temos o chamados Message Transfer Agent (MTA). Como nome sugere são eles que efetivamente fazem a transferência dos e-mails. Essa transferência é feita usando o protocolo SMTP (Simple Mail Transfer Protocol).
O SMTP é usado para enviar a mensagem entre o remetente e o primeiro servidor e entre os servidores de e-mail. Ou seja, ele sempre usado para enviar e-mails. Para o recebimento vamos ter que fazer uso de outro tipo de protocolo.
O SMTP usa comandos e repostas para transferir mensagens entre um cliente MTA e um servidor MTA. Cada comando ou resposta termina com um caracter duplo codificado de “fim de linha” (CR — carriage return e LF — line feed). Um comando SMTP tem o seguinte formato:
Palavra-Chave: Argumentos
Os 14 comandos SMTP são mostrados na tabela a seguir.
HELO Nome do host do remetente
MAIL FROM Remetente da mensagem
RCPT TO Destinatário pretendido da mensagem
DATA Corpo da Mensagem
QUIT
RSET
VRFY Nome do destinatário a ser verificado
NOOP
TURN
EXPN Lista de endereços a ser expandida
HELP Nome do Comando
SEND FROM Destinatário pretendido da mensagem
SMOL FROM Destinatário pretendido da mensagem
SEMAL FROM Destinatário pretendido da mensagem
As respostas são enviadas do servidor para o cliente. Uma mensagem de resposta apresenta um código de três dígitos que podem ser seguidos ou não por informações textuais adicionais.
O envio de mensagem segue três fases:
- Estabelecimento da conexão
- Transferência de mensagens
- Encerramento da conexão
Por fim, é importante saber que o SMTP usa por padrão a porta 25. Essa porta acabo deixando de ser usada para diminuir o número de spams. Essa porta foi substituída pela 587.
Além dos UA’s e dos MTA’s. Temos o MAA (Message Access Agent). Esse agente é usado para acessar as mensagens. O SMTP é um protocolo que empurra as mensagens. No MAA precisamos de um protocolo para puxar as mensagens.
Com isso fechamos esse tópico sobre correio eletrônico e o protocolo SMTP.
Grande Abraço!