Função | Enviando e-mails |
---|---|
Acrônimo | SMTP |
Porto |
25 (sem criptografia) 465 (criptografia implícita) 587 (criptografia explícita ) |
RFC |
1982 : RFC 821 2008 : RFC 5321 |
Simple Mail Transfer Protocol ( SMTP , literalmente " Simple Mail Transfer Protocol ") é um protocolo de comunicação usado para transferir correio eletrônico ( e-mail ) para servidores de e-mail .
SMTP é um protocolo bastante simples (como o nome sugere). Começamos especificando o remetente da mensagem, depois o (s) destinatário (s) de uma mensagem e, geralmente, após verificar sua existência, o corpo da mensagem é transferido. É possível testar um servidor SMTP usando o comando telnet na porta 25 de um servidor remoto.
O SMTP começou a ser amplamente usado no início dos anos 1980 . É então um complemento do UUCP , sendo este último mais adequado para a transferência de correios eletrónicos entre máquinas cuja interligação é intermitente. O SMTP, por outro lado, funciona melhor quando as máquinas que enviam e recebem mensagens estão constantemente interconectadas.
O software Sendmail é um dos primeiros, senão o primeiro, servidor de e-mail a usar SMTP. Desde então, a maioria dos clientes de e-mail pode usar SMTP para enviar mensagens. Surgiram alguns novos servidores, como Postfix , Qmail de Daniel J. Bernstein , Exim e Exchange da Microsoft .
Como o protocolo usava texto ASCII (7 bits ), ele não funcionava para enviar bytes para arquivos binários . Para superar esse problema, padrões como MIME foram desenvolvidos para permitir a codificação de arquivos binários por meio de SMTP. Hoje, a maioria dos servidores SMTP aceita MIME de 8 bits, tornando a transferência de arquivos binários quase tão fácil quanto texto simples.
SMTP usa TCP para transferência de dados.
O SMTP não permite a recuperação remota de e - mails que chegaram em uma caixa de correio em um servidor. Os padrões Post Office Protocol (POP) e IMAP foram criados para esse fim.
A transferência de mensagens entre servidores de e-mail geralmente é feita na porta 25, que é a porta padrão registrada na IANA . Os servidores usam os registros MX dos servidores DNS para rotear o correio.
O cliente de e-mail também usa a porta 25 (SMTP) para enviar mensagens usando SMTP. Mas a necessidade de controlar melhor os envios de clientes, em particular por meio de autenticação, levou à atribuição da porta 587 (envio).
Os administradores do servidor podem escolher se os clientes usam a porta TCP 25 (SMTP) ou a porta 587 ( envio ), conforme formalizado no RFC 6409 ( RFC 2476 anteriormente), para retransmitir o correio de saída para um servidor de correio. As especificações e muitos servidores aceitam ambos. Embora alguns servidores tenham suporte histórico da porta 465 (smtps, também chamada de submissões) para SMTP seguro, violando as especificações até o final de 2017, é melhor usar portas padrão e ESMTP (SMTP estendido) padrão de acordo com RFC 3207, se uma sessão segura deve ser usada entre o cliente e o servidor. No entanto, no início de 2018, a RFC 8314 finalmente atribuiu oficialmente a porta 465 ao protocolo SMTP com TLS implícito.
O teste telnet mencionado acima daria, em uma janela de terminal, uma caixa de diálogo semelhante a:
(a entrada do usuário está em verde e as mensagens do servidor estão em vermelho )
telnet smtp.----.---- 25 Connected to smtp.----.----. 220 smtp.----.---- SMTP Ready HELO client 250-smtp.----.---- 250-PIPELINING 250 8BITMIME MAIL FROM: <[email protected]> 250 Sender ok RCPT TO: <[email protected]> 250 Recipient ok. DATA 354 Enter mail, end with "." on a line by itself Subject: Test Corps du texte . 250 Ok QUIT 221 Closing connection Connection closed by foreign host.Observe que o final do texto é identificado por um único ponto em sua linha. Quando o texto deve conter um único ponto em sua linha, é necessário dobrá-lo (<CR> <LF> .. <CR> <LF>).
Conforme visto no exemplo acima, há uma sintaxe precisa para o envio das mensagens e uma série de códigos de retorno de três dígitos para indicar o status da solicitação. O primeiro dígito do código de retorno indica o status geral da solicitação, os outros dois dígitos fornecem os detalhes do status:
Mensagens mais comuns:
Codificado | Significado |
---|---|
220 | Primeiro código enviado pelo servidor quando a conexão é bem-sucedida. |
250 | Confirmação do pedido aceita. |
354 | Resposta ao comando DATA. O servidor espera pelos dados do corpo da mensagem. O cliente indica o final da mensagem por um único ponto em uma linha: < CR > < LF >. <CR> <LF> |
421 | Falha temporária para conectar. O servidor pode estar sobrecarregado, limitar o número de conexões do mesmo endereço IP ou o serviço pode estar indisponível. |
452 | Falha temporária: número máximo de destinatários atingido. |
550 | Falha permanente. A caixa de correio não existe ou o endereço do destinatário é inválido. |
554 | Falha de conexão permanente: usado em vez do código 220 para hosts na lista negra. |
Uma das limitações do SMTP é a incapacidade de autenticar o remetente. Para isso, foi definida a extensão SMTP-AUTH . Infelizmente, a incapacidade de aplicar amplamente o SMTP-AUTH tornou esse protocolo impotente contra o fenômeno do spam .
O spam é causado por uma série de fatores, incluindo: a implementação de software Mail Transfer Agent (MTA) não padrão , vulnerabilidades de segurança em sistemas operacionais que permitem que spammers controlem remotamente os PCs dos usuários para fazê-los enviar spam e, finalmente, falta de inteligência de alguns MTAs .
Para combater esse fenômeno de forma eficaz, existem duas abordagens: modificar profundamente o SMTP (ou mesmo substituí-lo) ou adicionar outros protocolos a ele para preencher suas lacunas. Modificar o SMTP em grande medida, ou substituí-lo por completo, não parece viável, devido à importância da rede de servidores já instalada. Apesar de tudo, soluções alternativas foram desenvolvidas, como Internet Mail 2000 (en) ou ePost .
Outra abordagem é criar sistemas para suportar as operações do protocolo SMTP. O Grupo de Pesquisa de Spam (ASRG) do IRTF (in) , está atualmente Sobre a autenticação de e-mails com o objetivo de fornecer um serviço flexível, leve, extensível e escalável. Todas essas investigações resultaram no protocolo MARID (in) em 2004 e no protocolo DomainKeys Identified Mail em 2006.
Em 2006, a AFA recomendou que os provedores de serviços de Internet (ISPs) bloqueiem os pacotes TCP / IP de saída destinados à porta 25. A ideia desenvolvida é que "um usuário residencial só possa enviar suas mensagens eletrônicas através do servidor de seu e-mail provedor . "
Na época, entre 50% e 80% do spam era gerado por computadores infectados .
Na França e no Canadá, os principais ISPs têm seguido esta recomendação: Orange, Bell, Videotron e CCAPcable têm bloqueado a porta 25 para junho de 2007, Gratuito desde dezembro de 2006 (esta é uma opção, o bloqueio pode ser desabilitado), AOL desde 2003.
A prática hoje é que o usuário envie a mensagem ao servidor de e-mail usando SMTP autenticado (porta 587). A porta 25 é apenas para servidores SMTP entre eles.