O que são protocolos de serviço de e-mails (SMTP, POP3 e IMAP4)

Introdução ao serviço de mensagens electrónicas

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

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

  • Aquando da abertura da sessão SMTP, o primeiro comando a enviar é o comando HELO seguido de um espaço (notado <SP>)      e o nome de domínio da sua máquina (para lhe dizer  “bom dia,     sou a máquina tal”), seguidamente validar por entrada (notado <CRLF>). Desde Abril de 2001, as especificações do protocolo SMTP, definidas no RFC 2821, impõem que o comando HELO seja substituído pelo comando EHLO.
  • O segundo comando é “MAIL FROM” seguido do endereço de correio electrónico do remetente. Se o comando  for aceite, o servidor devolve a mensagem “250 OK”
  • O comando seguinte é “RCPT TO: ” seguido do endereço de correio electrónico do destinatário. Se o comando for aceite, o servidor devolve a mensagem “250 OK”
  • AO comando  DATA é a terceira etapa do envio. Anuncia o início do corpo da mensagem. Se o comando for aceite, o servidor reencia  uma mensagem intermédia numerada 354, que indica que o envio do corpo do mail pode começar e considera o conjunto das linhas seguintes até ao fim da mensagem localizada por uma linha que contém unicamente um ponto. O corpo do e-mail contém eventualmente alguns dos cabeçalhos seguinte:
    • Date
    • Subject
    • Cc
    • Bcc
    • From

     Se o comando for aceite, o servidor devolve a mensagem “250 OK”   Eis um exemplo de transacção entre um cliente (C) e um servidor SMTP  (S)

S: 220 smtp.opsportugal.net SMTP Ready    
C: EHLO machine1.opsportugal.net    
S: 250 smtp.opsportugal.net    
C: MAIL FROM:<webmaster@opsportugal.net>    

S: 250 OK    
C: RCPT TO:<rosdet@rosdet.net>    

S: 250 OK    
C: RCPT TO:abba@abba.us    

S: 550 No such user here    
C: DATA    
S: 354 Start mail input; end with <CRLF>.<CRLF>    

C: Subject: Good Morning    
C: Hi Rosdet,    
C: How are you today?    
C :    
C: See you soon!    
C: <CRLF>.<CRLF>    

S: 250 OK    
C: QUIT    
R: 221 smtp.opsportugal.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 :

  • base64 para os anexos
  • quoted-printable (de abbréviation QP) para os caracteres      especiais contidos no corpo da mensagem

É assim possível enviar um correio graças a um simples Telnet na porta 25 do servidor SMTP :

telnet smtp.opsportugal.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: sender@domain.com Identificação do endereço do remetente
RCPT TO: RCPT TO: receiver@domain.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 POP3

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
Command          Descrição
USER identifying 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 palavra_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.opsportugal.net 110

(o servidor indicado acima é voluntariamente inexistente, pode  tentar substituindo opsportugal.net pelo domínio do seu fornecedor de acesso à Internet)

S: +OK mail.opsportugal.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: Hi Rosdet,    
S: How are you?    
S :    
S: See you soon!    
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

O protocolo IMAP (Internet Message Access Protocol) é um protocolo alternativo ao protocolo POP3 mas que oferece muitas mais possibilidades:

  • IMAP permite gerir vários acessos simultâneos
  • IMAP permite gerir várias caixas de correio
  • IMAP permite triar o correio de acordo com mais critérios

Mais informações

Para mais informações sobre o protocolo SMTP,  deve consultar o RFC 821 que explica de maneira detalhada o protocolo :

  • RFC 821 traduzido em português
  • RFC 821 original
Anúncios

Sobre Rosdet Nascimento

Nasci em 1985 em São Tomé e Príncipe, mas vivi toda a minha vida no concelho de Cascais. Tenho formação na área de informática, mas sou administrativo numa grande multinacional, dizem que a maior delas. Além da escrita e do cinema, sou amante de desportos como Running e Krav Maga. Guerreiro é o meu primeiro romance.
Esta entrada foi publicada em Glossário, Internet com as etiquetas , , , , . ligação permanente.

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s