Generalidades
A continuación se describe la buena y mala suplantación de identidad y se explica la política de dominio del remitente de DreamHost, que protege el correo legítimo.
Suplantación de correo
Cuando se envían correos, el programa o script de correo puede indicar que el remitente es "remitente" cualquier dirección que desees. La suplantación de correo se produce cuando se envía un correo con una dirección del REMITENTE falsificada. Por ejemplo, puedes enviar correos desde tu sitio web example.com que sean "remitente" DirecciónFalsa@example.com. Por lo tanto, siempre es posible cambiar la dirección del REMITENTE al enviar un correo.
Suplantación Buena vs la Mala
Suplantación Buena
-
Una buena suplantación de identidad ocurre cuando un correo enviado desde tu sitio web parece ser enviado desde tu dominio (contacto@example.com).
Sin la suplantación de identidad, el correo se enviaría desde usuario@servidor.dreamhost.com, lo que puede resultar confuso para los usuarios o clientes del sitio. En este caso, el correo está suplantado, por lo que muestra claramente que se origina en tu sitio web.
Suplantación Mala
-
La suplantación de identidad incorrecta ocurre cuando los spammers usan tu dirección de correo para ocultar el origen de sus correos no deseados, lo que les permite enviar cientos de correos que parecen provenir de tu sitio web.
-
Protegerse contra la suplantación mala
Si recibe correos rebotados que dicen "no se pueden entregar" y que en realidad nunca enviaste, es posible que un spammer esté falsificando tu dominio.
El DKIM es un método de autenticación de correos que se habilita automáticamente en todas las cuentas de correo de DreamHost. Puedes usar registros DKIM para que los correos falsificados sean más fácilmente reconocibles como sospechosos y, con suerte, disuadir a los spammers de falsificar tu dominio.
DreamHost recomienda que no agregues a la lista blanca tu propio correo o dominio, pues podría permitir a los spammers hacer spoofing tu dirección mucho más fácil.
Buena suplantación usando un formulario de contacto de PHP
El siguiente código básico envía correos del formulario de contacto utilizando tu dirección de correo como remitente. El formulario de contacto establece los campos $visitor_name, $visitor_email y $message:
//establecer la dirección de correo electrónico del destinatario, a dónde enviar correos electrónicos $to_email = incoming@example.com;
//establece la dirección de correo electrónico del remitente $your_email = administrator@example.com;
//usa tu dirección de correo electrónico como remitente $header = "From: " . $your_email . "\r\n";
//poner la dirección del visitante del sitio en el Reply-To header $header .= "Reply-To: " . $visitor_email . "\r\n";
//configurar el Asunto del correo electrónico utilizando el nombre del visitante del sitio $subject = "Envío de formulario de contacto desde " . $visitor_name;
//configurar el cuerpo del correo electrónico con toda la información del visitante del sitio $emailMessage = "Nombre: " . $visitor_name . "\r\n"; $emailMessage .= "Email: " . $visitor_email . "\r\n"; $emailMessage .= "Mensaje: " $message . "\r\n";
//envía el correo mail($to_email, $subject, $emailMessage, $header);
Este código solo falsificó el encabezado FROM (el que se ve en un programa de cliente de correo). Cualquier rebote o mensaje de error del servidor de correo se envía al envelope sender o remitente del sobre, que se dejó sin escribir y seguirá siendo la dirección predeterminada username@server.dreamhost.com.
Suplantar el envelope sender o sobre del remitente
Para falsificar el remitente del sobre y hacer que los correos rebotados vayan a esa dirección de correo en lugar del directorio Maildir/new en el servidor web, usa el parámetro adicional -f de la función de correo como aparece a continuación:
mail($to_email, $subject, $emailMessage, $header, "-f$your_email");
También puedes ver más ejemplos de scripts de correo PHP aquí.