Generalidades
Cuando se envían correos el programa o script de correo puede decir que el remitente es "de" cualquier dirección que desee. La suplantación de correo ocurre cuando el correo se envía con una dirección DE falsificada. Por ejemplo, puede enviar correos desde tu sitio web example.com que son "de" FakeFromAddress@example.com. Por lo tanto, siempre es posible cambiar la dirección FROM o DE al enviar un correo.
Este artículo detalla la falsificación buena y mala y explica la política de dominio de remitente de DreamHost que protege el correo legítimo.
¿Qué es la suplantación de identidad útil?
Sin falsificaciones, cualquier correo enviado desde tu sitio web se enviará "desde" tuusuario@tuservidor.dreamhost.com. Si bien eso es exacto, no es muy agradable de ver, y puede ser confuso para los usuarios del sitio o los clientes que esperan ver el correo proveniente del mismo nombre de dominio que tu sitio web. Entonces, en cierto sentido, el correo es falso para mostrar claramente que se origina en tu sitio web.
¿Qué es mala suplantación de identidad o spoofing?
Los spammers a menudo usan suplantación de correo para esconderse desde donde se envían sus correos no deseados. Hacen esto para poder enviar cientos de correos que parecen ser originarios de tu sitio web. Si recibe correos devueltos "imposibles de entregar" (undeliverable) que nunca enviaste, un spammer podría estar falsificando 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.
Protección contra la mala suplantación de identidad o spoofing
Los registros DKIM pueden hacer que los correos falsificados sean más fácilmente reconocibles como sospechosos y, con suerte, desalienten a los spammers de falsificar tu dominio:
- DKIM es un método de autenticación de correo que se habilita automáticamente para todas las cuentas de correo de DreamHost.
Código PHP
Este código básico envía correos de formulario de contacto utilizando tu dirección de correo como remitente. los $visitor_name, $visitor_email, y $message son establecidos por el formulario de contacto:
//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";
//envia 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 address.
Para falsificar el remitente del sobre y recibir correos devueltos, ve a esa dirección de correo en lugar del directorio Maildir/new en el servidor web, use la función de correo -f parámetro adicional como en el siguiente:
mail($to_email, $subject, $emailMessage, $header, "-f$your_email");
Puedes encontrar más ejemplos de scripts de correo PHP aquí:
¿Qué sucede si mi dominio no utiliza el servicio de correo alojado en DreamHost? (SMTP)
Si tu dominio no utiliza el servicio de correo regular alojado en DreamHost, entonces tu dominio puede tener servicio de correo de otro proveedor como Google Suite. Para estos dominios, tu sitio web debe usar SMTP para conectarse directamente al servidor de correo de tu dominio. De esta manera, tu sitio web inicia sesión en su cuenta de correo en ese host y envía correos a través de tu servidor en lugar de hacerlo a través de los servidores de correo de DreamHost.
- WordPress tiene soporte SMTP a través de un plugin. Hay muchos plugins, SMTP para elegir, WP Mail SMTP es uno.
- Joomla tiene incorporado SMTP suporta (versión 3.1).
- phpBB tiene incorporado soporte de SMTP.
- ZenCart tiene incorporado soporte de SMTP.
Si tu sitio web fue creado por tí u otra persona a mano y está escrito en PHP, puedes agregar soporte SMTP usando PHPMailer. Solo usa el host/servidor SMTP que te proporciona tu proveedor de correo y tu usuario y contraseña en tu sistema.