SMTP

Simple Mail Transfer Protocol (SMTP, Protocolo de Transferencia Simple de Correo) é o patrón de facto para envío de correo electrónico a través de Internet.

SMTP é un protocolo relativamente simple, baseado en texto simple, en que se especifican un ou varios destinatarios dunha mensaxe (e, na maioría dos casos, validados), sendo despois a mensaxe transferida. É bastante fácil testar un servidor SMTP usando o programa telnet. Este protocolo corre sobre o porta 25 nunha rede TCP. A resolución DNS dun servidor SMTP dun dado dominio posibilítase pola entrada MX (Mail eXchange).

A utilización en masa do SMTP remonta aos anos 80. Na altura era un complemento ao UUCP que estaba mellor adecuado para transferencias de correo electrónico entre máquinas sen ligazón permanente. Por outro lado, o desempeño do SMTP aumenta se as máquinas envolvidas, emisor e receptor, se atoparen ligadas permanentemente.

O Sendmail foi un dos primeiros (se non o primeiro) axente de transporte de correo electrónico a implementar SMTP. En 2001 existían, polo menos, uns 50 programas que implementan SMTP como cliente (emisor) ou servidor (receptor). Outros servidores SMTP moi coñecidos son: exín, Postfix, Qmail, e Microsoft Exchange Server.

Dada a especificación inicial, que contemplaba apenas texto ACII, este protocolo non é ideal para a transferencia de ficheiros. Algúns estándars foron desenvolvidos para permitir a transferencia de ficheiros en formato binario a través de texto simple, como o caso do MIME. Hoxe en día case todos os servidores SMTP soportan a extensión 8BITMIME.

O SMTP é un protocolo de recepción apenas, i.e., non permite que un usuario descargue as mensaxes dun servidor. Para iso é necesario un cliente de correo electrónico que soporte POP3 ou IMAP, que é o caso da maioría dos clientes actuais.

 Exemplo dunha sesión SMTP 
Despois do estabelecemento dunha conexión entre emisor (cliente) e receptor (servidor), o exemplo seguinte ilustra unha sesión SMTP. Na conversación seguinte, "C:" designa as mensaxes do cliente e "S:" as mensaxes do servidor. Na maioría dos computadores unha conexión pode ser estabelecida usando o comando telnet no emisor, por exemplo:

 telnet www.example.com 25

que irá abrir unha ligazón SMTP entre a máquina cliente (emisor) 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 mesaxe
 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

Aínda que opcional, practicamente todos os clientes pregúntanlle ao servidor cales extensións SMTP soporta, utilizando o comando EHLO (en oposición ao HELO ilustrado enriba), e o corpo da mensaxe (a seguir a DATA) segue tipicamente en formato MIME.

 Seguranza e spamming 

Unha das limitacións da especificación SMTP inicial é que non existe método de autenticación dos emisores. Como tal, foille engadida a extensión SMTP-AUTH.

A pesar diso, o spamming continuaba a ser un problema. Alterar o SMTP extensivamente ou substituílo completamente non se torna práctico, debido á forte utilización do SMTP e aos efectos que de aí podían advir. O Internet Mail 2000 é unha proposta nese sentido.

É por esta razón que existen varias propostas para protocolos alternativos que irían asistir a operación SMTP. O Grupo de Investigación Anti-Spam do IRTF atópase a estudar varias propostas para se soportar a autenticación do emisor dunha forma flexíbel e escalábel. A proposta aparentemente máis sólida parece ser o protocolo Sender Policy Framework.

 Véxase tamén 
 Outros artigos 
 Post Office Protocol

 Ligazóns externas 
 RFC 2821 - The Simple Mail Transfer Protocol, que tornou obsoleto o RFC 821
 RFC 2822 - Internet (i.e. e-mail) Mesaxe Format, que tornou obsoleto o RFC 821
 RFC 1869 - Extensións do SMTP, orixinando o Extended SMTP
 RFC 1891 - Extensión ao SMTP para soportar Delivery Status Notification (DSN)

Categoría:Protocolos de Internet
Categoría:Redes de computadores
Categoría:Correo electrónico
Categoría:Estándares de Internet