Cita:
Iniciado por Erick_MD9 Lo más seguro, es que no sea un usuario.
Un spider o bot.
Saludos
Gracias Erick por tu ayuda y por hacer que piense de diferente forma, cuando uno piensa lo hace siempre de la misma manera pero cuando otro da su punto de vista hace que comiences a tener otra visión sobre el problema.
Efectivamente, puede tratarse de un Spider y la solución pasa por:
En el PHP validar a Null las variables.
Cargarles los valores que vienen del formulario.
Y condicionar los envíos de mail al hecho de que una de las variables no sea Null o en mi caso a que la variable $email contenga la @.
De esta manera los mails solo se enviarán cuando el PHP sea llamado por el HTML que contiene el formulario.
Este es el código final:
//coloco las variables a null
$nombre = NULL;
$email = NULL;
$asunto = NULL;
$consulta = NULL;
$ip = NULL;
//levanto las los datos a traves de variables
$nombre = $_POST['nombre'];
$email = $_POST['email'];
$asunto = $_POST['asunto'];
$consulta = $_POST['consulta'];
$ip = getRealIP();
// armo los mails con la info levantada y muestro mensajes si la variable email contiene @
if ( strpos($email,'@') !== FALSE ) {
mail('
[email protected]', 'Consulta desde el formulario Web', "* Envia: $nombre \r\n* E-mail: $email \r\n\r\n* Asunto: $asunto \r\n\r\n* Mensaje: $consulta", "From: $email \r\n\r\n ATENCION: Antes de dar respuesta verificar con el panel de control si ha confirmado la consulta desde su bandeja de correo. \r\n IP del usuario: " .$ip );
mail('
[email protected]', 'Consulta desde el formulario Web', "* Envia: $nombre \r\n* E-mail: $email \r\n\r\n* Asunto: $asunto \r\n\r\n* Mensaje: $consulta", "From: $email \r\n\r\n ATENCION: Antes de dar respuesta verificar con el panel de control si ha confirmado la consulta desde su bandeja de correo. \r\n IP del usuario: " .$ip );
mail($email, 'Su consulta desde el formulario Web:', "* Envia: $nombre \r\n* E-mail: $email \r\n\r\n* Asunto: $asunto \r\n\r\n* Mensaje: $consulta", "From: $email \r\n\r\n Gracias por usar este servicio, en breve le daremos respuesta.");
// Una vez que se envia, vuelvo al formulario ancunciando que los datos se enviaron
echo "<script>history.back(alert(\"Su consulta se ha mandado y está siendo procesada, gracias.\"));</script>";
}
echo "<script>window.close();</script>";
?>
Dejo el tema abierto unos días por si veo que algo falla pero creo que ha quedado solucionado.
Gracias Erick.