Padrões
de Mail
Existem vários sistemas de mail, como BITNET, Fidonet, MAPI, cc:mail e outros, mas nunca nenhum conseguiu superar o Internet Mail, que assumiu liderança absoluta em uso.
Alguns clientes ainda usam os outros modelos de e-mail, mas geralmente eles acabam tendo que ter um conversor desse formato para o formato do Internet Mail para se comunicar com outras entidades.
O modelo Básico do Internet Mail:
O protocolo do Internet Mail é um sistema simples de cliente/servidor. O caminho básico de um e-mail é:
1) Do proprietário da mensagem (que pode ser um usuário ou um sistema gerador) para seu servidor de mensagens através de SMTP, sendo assim o proprietário tratado como cliente e o servidor como servidor.
2) Do servidor de mensagens do proprietário para o servidor de mensagens do destino através de SMTP, sendo o servidor do proprietário tratado como cliente, e o servidor do destino como servidor.
3) Do servidor de destino para o destinatário (que também pode ser um usuário ou um sistema automatizado) através de POP ou IMAP, nesse caso sendo o destinatário o cliente e o servidor o servidor.
O sistema original é extremamente simples, composto de um cabeçalho em ASCII seguido do corpo da mensagem, que pode ser um texto ASCII ou um arquivo binário.
Movendo mensagens entre servidores SMTP:
O SMTP sempre trabalha como um sistema cliente/servidor. O Host que inicia o contato sempre age como cliente, e o host contatado age como servidor. O cliente tem uma variedade de comandos que podem ser enviados, e que o servidor envia uma breve resposta. O servidor nunca pode enviar um comando para o cliente.
Quando um host vai enviar um e-mail, ele determina para onde o mail deve ir, verificando a tabela DNS e contata o host de destino na porta 25 (default).
Estabelecida a conexão segue-se a seqüência de comandos do cliente, recebendo as respostas do servidor que sempre possuem um número de 3 dígitos informando o status, e geralmente uma mensagem de texto ao lado.
Exemplo de seqüência de comandos e respostas básico:
Cliente> Contata o servidor
Servidor> 220 SuperMail server
Aqui o cliente aciona uma conexão na porta 25 e o servidor responde com o status 220 e sua descrição.
Cliente> HELO SysWare Corp.
Servidor> 250 – SuperMail Hello.
Aqui o cliente se identifica e o servidor responde com o status 250 (status de OK) e se identifica também.
Cliente> MAIL FROM: admin@sysware.com
Server> 250 OK
Aqui o cliente diz a origem da mensagem
Cliente> RCPT TO: perotto@etcom.ufrgs.br
Servidor> 250 OK
Aqui o cliente diz o destino da mensagem. Este comando pode ser repetido várias vezes para vários recipientes.
Cliente> DATA
Servidor> 354 OK, Começe o mail, e termine com <enter>.<enter>
Aqui o cliente pregunta se o servidor está pronto para receber os dados, e o servidor responde que sim
Cliente>
Linha de dados 1
Linha de dados 2
Linha de dados 3
.
Servidor> 250 OK, mensagem enviada.
Aqui o cliente envia o corpo da mensagem (terminando com um ponto sozinho na última linha) e o servidor responde com um OK.
Cliente> QUIT
Servidor> 221 Conexão encerrada
Aqui o cliente pede o fim da conexão que é desfeita pelo servidor.
Submissão e Relay de mensagens:
Depois de uma mensagem ser criada, ela é submetida, podendo ir para o servidor de mensagens do usuário ou até diretamente para o servidor de destino. A primeira forma é muito comum na Internet, a segunda é mais usada em redes internas.
A mensagem pode ser enviada através de uma seqüência de servidores, a função de repassar um e-mail de outro servidor se chama Relay. Mas tanto a submissão como o relay são feitos através do mesmo protocolo SMTP.
Quando o host de destino recebe a mensagem, ele escreve-a ou em um arquivo independente, ou num arquivo que contém todas as mensagens destinada à uma mesma pessoa ou em um banco de dados, ficando disponível para o servidor POP ou IMAP.
Endereço de Mail e registros MX.
A primeira coisa que um servidor faz é descobrir para onde a mensagem deve ir. Dependendo de como estiver configurado o servidor, ele pode enviar a mensagem diretamente para o destino, ou enviar para um outro servidor previamente configurado, que irá repassar essa mensagem adiante.
O domínio após a arroba no endereço sempre deve apontar para um host específico, e para descobrir isso e servidor contata uma tabela de DNS na entrada MX (mail exchange) para descobrir o ip do host de destino. Se não houver nenhuma entrada no registro MX, ele procura nos registros DNS A, não havendo também nenhuma entrada, ele manda uma mensagem de erro para a origem e descarta a mensagem original.
Modelos de Mail Atualizados:
O SMTP recebeu algumas atualizações e melhorias com o passar do tempo, aumentando o número de comandos, mas nem todos os servidores tinham os mesmos comandos implementados, então de desenvolveu o padrão ESMTP (SMTP extended).
Quando uma conexão é iniciada e o cliente utiliza ESMTP, ao invés do comando HELO, ele utiliza o EHLO, se este comando retornar um erro, o cliente passa a saber que o servidor não suporta comandos ESMTP, mas se o servidor suportar, ele vai responder exatamente com a lista de comandos que ele está apto a receber.
Recebendo mensagens:
Depois que o último servidor guardou a mensagem em disco, o destinatário deve poder receber esta mensagem.
Na maioria das vezes se utilizam os servidores POP para esta função, ele cria um serviço cliente/servidor onde o destinatário é o cliente e o servidor é o servidor.
O funcionamento do servidor POP é bem semelhante ao SMTP, mas os comandos são voltados ao recebimento das mensagens.
Um problema dos servidores POP é que a pessoa não pode escolher que mail ela quer receber e quais ela não quer, podendo deixar o recebimento bem mais lento, por isso foi desenvolvido o servidor IMAP. Este servidor dá ao cliente muito mais controle sobre seus mails, podendo, por exemplo, receber alguns mails e deixar outros no servidor. Um dos problemas dos servidores IMAP é mais político do que técnico, muitos servidores não querem assumir a responsabilidade de estar guardando e-mails de seus clientes.
Acessando mail através da WEB:
Este sistema foi desenvolvido e teve uma aceitação muito grande no mercado, pois o usuário muito mais facilmente pode acessar uma página de qualquer lugar sem depender de servidores POP nem IMAP.
Com esse sistema, também temos a vantagem de acessar nossos mails em aparelhos celulares ou outros eletrônicos que estão surgindo com o acesso à internet.
Aplicações voltadas para o cliente:
Várias outras aplicações vêm sendo implementadas nos servidores, uma das mais utilizadas ultimamente é a MDN, que envia uma mensagem de volta ao proprietário na hora em que o destinatário abrir a mensagem, dando mais certeza assim de que ela foi realmente lida por ele.
O formato das mensagens:
Tanto SMTP, como POP e IMAP ignoram o que contém na área de dados das mensagens, eles somente controlam a origem e o destino delas.
Dentro da área de dados é formado um cabeçalho, que possui todas as descrições da mensagem, citemos um exemplo:
Received: from sol.etcom.ufrgs.br by sysware.com with ESMTP id VAA17989 for (admin@sysware.com) ; wed, 9 dec 1998 21:07:44
From: admin@sysware.com
Message-ID: <8232873.366f53ea@sysware.com>
Date: Wed, 9 dec 1998 21:07:44 EST
To: Rafaello Perotto <perotto@etcom.ufrgs.br>
Mime-version: 1.0
Subject: Lá vai
Content-type: text/plain; charset=US_ASCII
Content-transfer-encoding: 7bit
Agora foi
Administrador
Cabeçalho da mensagem:
O cabeçalho acabou se tornando praticamente padrão e contento muitos dados sobre a transferência.
Uma linha em branco divide o cabeçalho do corpo da mensagem.
Existem várias informações que podem ser colocadas nele, como to, from, subject, date, e outras como Cc. Dependendo da interface que o usuário estiver usando esses dados podem ser recebidos como texto comum e colocados na tela ou podem ser pegos e colocados em campos específicos, gerando mais facilidades para o usuário.
Esses campos são sempre formados por uma palavra (sem espaços), seguida de dois pontos e seguida do valor.
Corpo da mensagem:
No início o corpo da mensagem era somente um texto ASCII, mas com o tempo foi implementado o MIME, que permitia o envio de arquivos de qualquer tipo, e o envio de mensagens com formatação de texto.
Outra grande atualização feita pelo MIME além de enviar arquivos é poder enviar a mensagem em dois formatos, exemplo um HTML e um texto, os programas mais evoluídos abririam o HTML, mas os que não suportam HTML podem abrir o texto e receber a mesma mensagem.
Com o maior uso de HTML e imagens juntos enviados por e-mail, foi desenvolvido o MHTML, protocolo que define como as imagens e o texto devem aparecer para o cliente.
MIME ainda permite outros tipos de recursos como encriptar o e-mail ou com PGP ou com qualquer outro recurso de codificação que tenha sido implementado para uso com e-mails.
Internacionalização dos mails:
Com a divulgação e aumento do uso de mails no mundo inteiro, convencionou-se que no cabeçalho haveria um campo chamado “charset”, na parte do cabeçalho que define o “content-type”, aonde está descrito a tabela de caracteres utilizada.