Simple Mail Transfer Protocol
Origem: Wikipédia, a enciclopédia livre.
Simple Mail Transfer Protocol (SMTP) é o padrão de facto para envio de e-mail através da Internet.
SMTP é um protocolo relativamente simples, baseado em texto simples, em que um ou vários destinatários de uma mensagem são especificados (e, na maioria dos casos, validados), sendo depois a mensagem transferida. É bastante fácil testar um servidor SMTP usando o programa telnet. Este protocolo corre sobre a porta 25 numa rede TCP. A resolução DNS de um servidor SMTP de um dado domínio é possibilitada pela entrada MX (Mail eXchange).
A utilização em massa do SMTP remonta aos anos 80. Na altura era um complemento ao UUCP que estava melhor adequado para transferências de correio electrónico entre máquinas sem ligação permanente. Por outro lado, o desempenho do SMTP aumenta se as máquinas envolvidas, emissor e receptor, se encontrarem ligadas permanentemente.
O Sendmail foi um dos primeiros (se não o primeiro) agente de transporte de email a implementar SMTP. Em 2001 existiam, pelo menos, uns 50 programas que implementam SMTP como cliente (emissor) ou servidor (receptor). Outros servidores SMTP muito conhecidos são: exim, Postfix, Qmail, e Microsoft Exchange Server.
Dada a especificação inicial, que contemplava apenas texto ASCII, este protocolo não é ideal para a transferência de ficheiros. Alguns standards foram desenvolvidos para permitir a transferência de ficheiros em formato binário através de texto simples, como o caso do MIME. Hoje em dia quase todos os servidores SMTP suportam a extensão 8BITMIME.
O SMTP é um protocolo de envio apenas, ie, não permite que um utilizador descarregue as mensagens de um servidor. Para isso é necessário um cliente de email que suporte POP3 ou IMAP, que é o caso da maioria dos clientes actuais.
Índice |
[editar] Exemplo de uma sessão SMTP
Após o estabelecimento de uma conexão entre emissor (cliente) e receptor (servidor), o exemplo seguinte ilustra uma sessão SMTP. Na conversação seguinte, "C:" designa as mensagens do cliente e "S:" as mensagens do servidor. Na maioria dos computadores uma conexão pode ser estabelecida usando o comando telnet no emissor, por exemplo:
telnet www.example.com 25
que irá abrir uma ligação SMTP entre a máquina cliente (emissor) e o servidor www.example.com.
S: 220 www.example.com ESMTP Postfix C: HELO mydomain.com S: 250 Hello mydomain.com C: MAIL FROM: sender@mydomain.com S: 250 Ok C: RCPT TO: friend@example.com S: 250 Ok C: DATA S: 354 End data with <CR><LF>.<CR><LF> C: Subject: test message C: From: sender@mydomain.com C: To: friend@example.com C: C: Hello, C: This is a test. C: Goodbye. C: . S: 250 Ok: queued as 12345 C: quit S: 221 Bye
Embora opcional, praticamente todos os clientes questionam o servidor sobre quais as extensões SMTP que este suporta, utilizando o comando EHLO (em oposição ao HELO ilustrado acima), e o corpo da mensagem (a seguir a DATA) segue tipicamente em formato MIME.
[editar] Segurança e spamming
Uma das limitações da especificação SMTP inicial é que não existe método de autenticação dos emissores. Como tal, foi-lhe adicionada a extensão SMTP-AUTH.
Apesar disso, o spamming continuava a ser um problema. Alterar o SMTP extensivamente ou substituí-lo completamente não se torna prático, devido à forte utilização do SMTP e aos efeitos que daí podiam advir. O Internet Mail 2000 é uma proposta nesse sentido.
É por esta razão que existem várias propostas para protocolos alternativos que iriam assistir a operação SMTP. O Grupo de Pesquisa Anti-Spam do IRTF encontra-se a estudar várias propostas para se suportar a autenticação do emissor de uma forma flexível, leve e escalável. A proposta aparentemente mais sólida parece ser o protocolo Sender Policy Framework.