Os protocolos de serviço de mensagens: SMTP, POP3 e IMAP4

Novembro 2017

O e-mail é considerado o serviço mais utilizado na Internet. Assim, a suíte de protocolos TCP/IP oferece um leque de protocolos que permitem gerenciar facilmente o encaminhamento do correio na rede.

O que é o protocolo SMTP

O protocolo SMTP (Simple Mail Transfer Protocol - Protocolo Simples de Transferência de E-mail) é o protocolo padrão que permite transferir o e-mail de um servidor para outro, em conexão ponto a ponto.

Este é um protocolo que funciona online, encapsulado numa trama TCP/IP. O e-mail é enviado diretamente para o servidor de e-mail do destinatário. O protocolo SMTP funciona com comandos de texto enviados ao servidor SMTP (por padrão, para a porta 25). Cada um dos comandos enviados pelo cliente (validados pela cadeia de caracteres ASCII CR/LF, que equivale a um clique na tecla ‘Enter’) é seguido de uma resposta do servidor SMTP composta de um número e de uma mensagem descritiva.

Veja o caso de um pedido de envio de e-mail para um servidor SMTP:


Ao abrir a sessão SMTP, o primeiro comando a ser enviado é o HELO seguido de um espaço (escrito <SP>) e o nome de domínio do seu dispositivo (para lhe dizer "bom dia, sou a máquina tal") e, depois, validado com a tecla Enter (escrito <CRLF>). Desde Abril de 2001, as especificações do protocolo SMTP, definidas no RFC 2821 determinam que o comando HELO seja substituído pelo comando EHLO.

O segundo comando é MAIL FROM seguido do endereço de e-mail do remetente. Se o comando for aceito, o servidor devolverá a mensagem 250 OK.

O comando seguinte é RCPT TO: seguido do endereço de e-mail do destinatário. Se o comando for aceito, o servidor devolverá a mensagem 250 OK.

O comando DATA é a terceira etapa do envio de um e-mail. Ele anuncia o início do corpo da mensagem. Se o comando for aceito, o servidor reenviará uma mensagem intermédia numerada 354, indicando que o envio do corpo do e-mail pode começar e considera o conjunto das linhas seguintes até o fim da mensagem indicada com uma linha que contém apenas um ponto. O corpo do e-mail contém eventualmente alguns dos seguintes cabeçalhos: Date, Assunto, Cc, Cco e De. Se o comando for aceito, o servidor devolverá a mensagem 250 OK.

Veja um exemplo de transação entre um cliente (C) e um servidor SMTP (S):

S: 220 smtp.CCM.net SMTP Ready    
C: EHLO machine1.CCM.net
S: 250 smtp.CCM.net
C: MAIL FROM:<webmaster@ccm.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: Pequeno Bom dia
C: Oi Meandus,
C: Como vai?
C :
C: Até logo!
C: <CRLF>.<CRLF>

S: 250 OK
C: QUIT
R: 221 smtp.ccm.net closing transmission

As especificações de base do protocolo SMTP exigem que todos os caracteres transmitidos sejam codificados em ASCII de 7 bits e que o oitavo bit seja explicitamente Zero. Assim, para enviar caracteres acentuados é preciso recorrer a algoritmos que integrem as especificações MIMO:

base64 para os anexos.
quoted-printable (abreviação QP) para os caracteres especiais contidos no corpo da mensagem.

Para isso, é possível enviar um e-mail utilizando um simples Telnet na porta 25 do servidor SMTP:

telnet smtp.ccm.net 25

Atenção! O servidor indicado acima não existe. Tente substituir ccm.net pelo nome do domínio do seu fornecedor de acesso à Internet.

Veja um resumo dos principais comandos SMTP:

ComandoExemploDescrição
HELO (agora EHLO)EHLO 193.56.47.125Identificação com a ajuda do endereço IP ou do nome de domínio do computador remetente
MAIL FROM:MAIL FROM: remetente@domínio.comIdentificação do endereço do remetente
RCPT TO:RCPT TO: destinatário@ domínio.comIdentificação do endereço do destinatário
DATADATA mensagemCorpo do e-mail
QUITQUITSaída do servidor SMTP
HELPHELPLista dos comandos SMTP suportados pelo servidor


Todas as especificações do protocolo SMTP são definidas no RFC 821 (desde abril de 2001, as especificações do protocolo SMTP estão definidas no RFC 2821).

O que é o protocolo POP3

O protocolo POP (Post Office Protocol - Protocolo dos correios) permite, como seu nome indica, recuperar o seu e-mail num servidor distante (o servidor POP). Ele é necessário para as pessoas não conectadas permanentemente à Internet, para poderem consultar os e-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 de texto completamente diferentes.

Assim como no caso do SMTP, o protocolo POP (POP2 e POP3) funciona graças a comandos de textos enviados ao servidor POP. Cada um dos comandos enviados pelo cliente (validado pela suíte 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.

Veja abaixo um quadro que resume os principais comandos POP2:

Comandos POP2
ComandoDescrição
HELLOIdentificação através do endereço IP do computador remetente
FOLDERNome da Caixa de Entrada a ser consultada
READNúmero da mensagem a ser lida
RETRIEVENúmero da mensagem a ser recuperada
SAVENúmero da mensagem a ser salva
DELETENúmero da mensagem a ser excluída
QUITSaída do servidor POP2


Veja um resumo dos comandos POP3:

EComandos POP3
ComandoDescrição
USER loginEste comando permite a autenticação. Ele deve ser seguido do nome do usuário, ou seja, uma cadeia de caracteres que identificam o usuário no servidor. O comando USER deve preceder o comando PASS
PASS senhaO comando PASS, permite indicar a senha do usuário, cujo nome tenha sido especificado por um comando USER prévio
STATInformação sobre as mensagens contidas no servidor
RETRNúmero da mensagem a ser recuperada
DELENúmero da mensagem a ser excluída
LIST [msg]Número da mensagem a ser exibida
NOOPPermite deixar a ligação aberta no caso de inatividade
TOP <mensagemID> <n> Comando que mostra várias linhas da mensagem, cujo número é dado como argumento. No caso de resposta positiva do servidor, este devolve os cabeçalhos da mensagem, seguido de uma linha em branco e, por último, as primeiras linhas da mensagem
UIDL [msg]Pede ao servidor para reenviar uma linha com informações sobre a mensagem eventualmente dada como 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 correspondente a uma mensagem existente no servidor POP, ou seja, uma mensagem não apagada)
QUITO comando QUIT pede a saída do servidor POP3. Ele provoca a remoção de todas as mensagens marcadas como apagadas e reenvia o estado desta ação


Assim, o protocolo POP3 gerencia a autenticação com a ajuda de um nome de usuário e de uma senha, porém isso não é seguro porque as senhas, assim como os e-mails, circulam às claras (de maneira não codificada) na rede. Na realidade, de acordo com o RFC1939, é possível codificar a senha que utiliza o algoritmo MD5 e, assim, beneficiar de uma autenticação protegida. Contudo, já que este comando é opcional, poucos servidores o aplicam. Por outro lado, o protocolo POP3 bloqueia a caixa de entrada durante a consulta, o que significa que uma consulta feita, simultaneamente, por dois usuários de uma mesma caixa de e-mail é impossível.

Assim como é possível enviar um e-mail graças à Telnet, também é possível acessar o seu e-mail recebido graças a um simples Telnet na porta do servidor POP (110, por padrão):

telnet mail.ccm.net 110

Atenção! O servidor indicado acima não existe. Tente substituir ccm.net pelo nome do domínio do seu fornecedor de acesso à Internet.

S: +OK mail.ccm.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 meu_pass
S: +OK Maildrop ready
C: STAT
S: +OK 2 0
C: TOP 1 5
S: Assunto: Bom-dia
S: Oi Meandus,
S: Como vai?
S :
S: Até logo!
C: QUIT
S: +OK

A exibição dos dados que você introduz depende do cliente Telnet que você usa. Dependendo do seu cliente Telnet, você deverá, talvez, ativar a opção echo local.

O que é o protocolo IMAP

O protocolo IMAP (Internet Message Access Protocol - Protocolo de Acesso à Mensagem de Internet) é um protocolo alternativo ao POP3, que oferece mais possibilidades. Entre outras, ele permite gerenciar vários acessos simultâneos, administrar várias caixas de e-mail e organizar as mensagens de acordo com mais critérios.

Messaging protocols (SMTP,POP3 and IMAP4)
Messaging protocols (SMTP,POP3 and IMAP4)
Protocolos de mensajería (SMTP, POP3 e IMAP4)
Protocolos de mensajería (SMTP, POP3 e IMAP4)
Die Mail Protokolle (SMTP, POP3, IMAP4)
Die Mail Protokolle (SMTP, POP3, IMAP4)
POP3, SMTP, IMAP - Protocoles de messagerie
POP3, SMTP, IMAP - Protocoles de messagerie
I protocolli di messaggeria (SMTP, POP3, IMAP4)
I protocolli di messaggeria (SMTP, POP3, IMAP4)
Última modificação: 25 de junho de 2017 às 02:05 por pintuda.
Este documento, intitulado 'Os protocolos de serviço de mensagens: SMTP, POP3 e IMAP4 ', está disponível sob a licença Creative Commons. Você pode copiar e/ou modificar o conteúdo desta página com base nas condições estipuladas pela licença. Não se esqueça de creditar o CCM (br.ccm.net) ao utilizar este artigo.