En su base, SMTP es solo un protocolo basado en texto sin verificación real. Aquí hay un ejemplo:
=== Trying g3.example.net:25...
=== Connected to g3.example.net.
<- 220 home.example.net ESMTP Exim 4.68 Thu, 07 May 2009 11:03:21 -0400
-> EHLO g3.example.net
<- 250-home.example.net Hello g3.example.net [192.168.0.4]
<- 250-SIZE 52428800
<- 250-PIPELINING
<- 250-AUTH CRAM-SHA1 CRAM-MD5 MSN
<- 250-STARTTLS
<- 250 HELP
-> MAIL FROM:<jj33@g3.example.net>
<- 250 OK
-> RCPT TO:<jj33@g3.example.net>
<- 250 Accepted
-> DATA
<- 354 Enter message, ending with "." on a line by itself
-> Date: Thu, 07 May 2009 11:03:21 -0400
-> To: jj33@g3.example.net
-> From: jj33@g3.example.net
-> Subject: test Thu, 07 May 2009 11:03:21 -0400
-> X-Mailer: swaks v20070921.0-dev jetmore.org/john/code/#swaks
->
-> This is a test mailing
->
-> .
<- 250 OK id=KJA4HL-0006M6-8T
-> QUIT
<- 221 home.example.net closing connection
=== Connection closed with remote host.
La línea "MAIL FROM:" define el remitente del sobre SMTP, y From: se define en el mensaje DATA. Hay formas de protegerse contra esto, pero se definen en la lógica del servidor de correo, no en el protocolo en sí.
Por ejemplo, yo, como proveedor de correo, puede requerir que un usuario se autentique usando un nombre de usuario tipo usuario @ dominio. Entonces mi servidor de correo puede requerir que cualquier correo que envíen tenga un remitente del sobre y un encabezado De: que coincida con el usuario con el que se autenticaron. Tecnologías adicionales como DKIM y SPF también pueden ayudar en esta área.