O correio electrónico é considerado o serviço mais utilizado na Internet. Assim, a sequência de protocolos TCP/IP oferece uma panóplia de protocolos que permitem gerir facilmente o encaminhamento do correio na rede.
O protocolo SMTP (Simple Mail Transfer Protocol, que se pode traduzir por Protocolo Simples de Transferência de Correio) é o protocolo standard que permite transferir o correio de um servidor a outro em conexão ponto a ponto.
Trata-se de um protocolo que funciona em modo conectado, encapsulado numa trama TCP/IP. O correio é entregue directamente ao servidor de correio do destinatário. O protocolo SMTP funciona graças a comandos textuais enviados ao servidor SMTP (por defeito, para a porta 25). Cada um dos comandos enviados pelo cliente (validados pela cadeia de caracteres ASCII CR/LF, equivalente a um clique na tecla ENTER) é seguido de uma resposta do servidor SMTP composta de um número e de uma mensagem descritiva.
Eis um cenário de pedido de envio de mail a um servidor SMTP
S: 220 smtp.kioskea.net SMTP Ready C: EHLO machine1.kioskea.net S: 250 smtp.kioskea.net C: MAIL FROM:<webmaster@kioskea.net> S: 250 OK C: RCPT TO:<meandus@meandus.net> S: 250 OK C: RCPT TO:<tittom@tittom.fr> S: 550 No such user here C: DATA S: 354 Start mail input; end with <CRLF>.<CRLF> C: Subject: Petit Bonjour C: Salut Meandus, C: comment ca va? C : C: A bientot ! C: <CRLF>.<CRLF> S: 250 OK C: QUIT R: 221 smtp.kioskea.net closing transmission
As especificações de base do protocolo SMTP exigem que todos os caracteres transmitidos sejam codificados em código ASCII de 7 bits 7 e que o oitavo bit esteja explicitamente a zero. Assim, para enviar caracteres acentuados, é necessário recorrer a algoritmos que integrem as especificações MIMO :
É assim possível enviar um correio graças a um simples Telnet na porta 25 do servidor SMTP :
telnet smtp.kioskea.net 25
(o servidor indicado acima é inexistente de propósito, pode tentar substituindo kioskea.net pelo domínio do seu fornecedor de acesso à Internet)
Eis um sumário dos principais comandos SMTP
| Comando | Exemplo | Descrição |
|---|---|---|
| HELO (doravanteEHLO) | EHLO 193.56.47.125 | Identificação com a ajuda do endereço IP ou do nome de domínio do computador remetente |
| MAIL FROM: | MAIL FROM: expediteur@domaine.com | Identificação do endereço do remetente |
| RCPT TO: | RCPT TO: destinataire@domaine.com | Identificação do endereço do destinatário |
| DATA | DATA message | Corpo do mail |
| QUIT | QUIT | Saída do servidor SMTP |
| HELP | HELP | Lista dos comandos SMTP suportados pelo servidor |
O conjunto das especificações do protocolo SMTP está definido no RFC 821 (desde Abril de 2001, as especificações do protocolo SMTP estão definidas no RFC 2821).
O protocolo POP (Post Office Protocol , que se pode traduzir por "protocolo de posto dos correios") permite, como o seu nome o indica, recuperar o seu correio num servidor distante (o servidor POP). É necessário para as pessoas não ligadas permanentemente à Internet, para poderem consultar os mails recebidos offline.
Existem duas versões principais deste protocolo, o POP2 e o POP3, aos quais são atribuídas respectivamente as portas 109 e 110, funcionando com o auxílio de comandos textuais radicalmente diferentes.
Tal como no caso do protocolo SMTP, o protocolo POP (POP2 e POP3) funciona graças a comandos textuais enviados ao servidor POP. Cada um dos comandos enviados pelo cliente (validado pela sequência CR/LF) é composto por uma palavra-chave, eventualmente acompanhada de um ou vários argumentos, e seguida de uma resposta do servidor POP, composta por um número e por uma mensagem descritiva.
Eis um quadro que recapitula os principais comandos POP2 :
| Comandos POP2 | |
|---|---|
| Commande |
Descrição |
| HELLO | Identificação através do endereço IP do computador remetente |
| FOLDER | Nome da caixa a consultar |
| READ | Número da mensagem a ler |
| RETRIEVE | Número da mensagem a recuperar |
| SAVE | Número da mensagem a salvaguardar |
| DELETE | Número da mensagem a suprimir |
| QUIT | Saída do servidor POP2 |
Eis um sumário dos comandos POP3 :
| EComandos POP3 | |
|---|---|
| Commande |
Descrição |
| USER identifiant | Este comando permite a autenticação. Deve ser seguido do nome do utilizador, quer dizer, uma cadeia de caracteres que identificam o utilizador no servidor. O comando USER deve preceder o comando PASS. |
| PASS mot_de_passe | O comando PASS, permite indicar a palavra-passe do utilizador, cujo nome foi especificado aquando de um comando USER prévio. |
| STAT | Informação sobre as mensagens contidas no servidor |
| RETR | Número da mensagem a recuperar |
| DELE | Número da mensagem a suprimir |
| LIST [msg] | Número da mensagem a afixar |
| NOOP | Permite deixar a ligação aberta no caso de inactividade |
| TOP <messageID> <n> | Comando que afixa n linhas da mensagem, cujo número é dado em argumento. No caso de resposta positiva do servidor, este devolve os cabeçalhos da mensagem, seguidamente uma linha virgem e por último as n primeiras linhas da mensagem. |
| UIDL [msg] | Pede ao servidor para enviar de novo uma linha que contém informações sobre a mensagem eventualmente dada em argumento. Esta linha contém uma cadeia de caracteres, chamada lista de identificador única, permitindo identificar de maneira única a mensagem no servidor, independentemente da sessão. O argumento opcional é um número que corresponde a uma mensagem existente sno servidor POP, quer dizer uma mensagem não apagada) |
| QUIT | O comando QUIT pede a saída do servidor POP3. Provoca a supressão de todas as mensagens marcadas como apagadas e reenvia o estado desta acção. |
O protocolo POP3 gere assim a autenticação com a ajuda de um nome de utilizador e de uma palavra-passe, em contrapartida não é seguro porque as senha, assim como os mails, circulam às claras (de maneira não codificada) na rede. Na realidade, de acordo com o RFC1939, é possível codificar a palavra-passe que utiliza o algoritmo MD5 e assim beneficiar de uma autenticação protegida. Contudo, sendo este comando opcional, poucos servidores o aplicam. Por outro lado, o protocolo POP3 bloqueia a caixa de correio aquando da consulta, o que significa que uma consulta simultânea por dois utilizadores de uma mesma caixa de correio é impossível.
Tal como é possível enviar um correio electrónico graças à Telnet, é igualmente possível aceder ao seu correio recebido graças a um simples Telnet na porta do servidor POP (110, por defeito) :
telnet mail.kioskea.net 110
S: +OK mail.kioskea.net POP3 service S: (Netscape Messaging Server 4.15 Patch 6 (built Mar 31 2001)) C: USER jeff S: +OK Name is a valid mailbox C: PASS mon_pass S: +OK Maildrop ready C: STAT S: +OK 2 0 C: TOP 1 5 S: Subject: Bom-dia S: Salut Meandus, S: comment ca va? S : S: A bientot ! C: QUIT S: +OK
A afixação dos dados que introduz depende do cliente Telnet que utiliza. De acordo com o seu cliente Telnet, poderá talvez ter de activar a opção echo local.
O protocolo IMAP (Internet Message Access Protocol) é um protocolo alternativo ao protocolo POP3 mas que oferece muitas mais possibilidades:
Para mais informações sobre o protocolo SMTP, deve consultar o RFC 821 que explica de maneira detalhada o protocolo :