¿Cómo enviar una notificación por correo electrónico cuando se visita una página?

¿Existe alguna forma de enviar una notificación por correo electrónico si se visita una determinada página?
(Activa un correo electrónico que dice que la página fue vista)

Es decir. El usuario llega a esta página: thank-you.php
Y el correo electrónico se envía automáticamente al administrador del sitio web al cargar la página.
Luego, el usuario es redirigido a otra página justo después de que se haya enviado este disparador de correo electrónico.

EDITAR --- Necesitaría verificar si un usuario proviene de un nombre de dominio o URL específico.
Esto es para evitar exploits u otros errores. trucos de sumisión.

¿Alguna sugerencia?

preguntado el 16 de mayo de 11 a las 17:05

¿Es necesario que el código pueda diferenciar entre un humano y un bot? ¿Está interesado solo en visitantes únicos o desea un correo electrónico cada vez que se visita la página? ¿Necesita implementar algún tipo de umbral para que no se vea inundado de correos electrónicos si alguien actualiza la página varias veces? -

Sí, Pheonix, debería buscar algo. Debe verificar si proviene de un dominio específico. Agregará esto a la pregunta. -

3 Respuestas

Tratar:

<?php
// The message
$message = "Line 1\nLine 2\nLine 3";

// In case any of our lines are larger than 70 characters, we should use wordwrap()
$message = wordwrap($message, 70);

// Send
mail('admin@example.com', 'My Subject', $message);

// Redirect
header('Location: anotherpage.php');
?>

contestado el 16 de mayo de 11 a las 21:05

Richard, ¿hay alguna manera de agregar esto en una condición que verifique si la URL de referencia cumple con un determinado nombre de dominio? - detonar

@detonate Sí, esto es posible. Podrías usar: if (isset($_SERVER['HTTP_REFERER']) && preg_match('/^http:\\/\\/www\\.yourdomain.com\\//',$_SERVER['HTTP_REFERER'])). Recuerde que esto lo establece el agente de usuario. No todos los agentes de usuario establecerán esto, y algunos brindan la capacidad de modificar HTTP_REFERER como una función. Algún software antivirus eliminará HTTP_REFERER. En resumen, realmente no se puede confiar en él. - AndersTornkvist

ok gracias por la propina Richard. ¿Tiene otra sugerencia alternativa? - detonar

Dependiendo del propósito, recomendaría enviar por correo semanalmente. Si cron no es una alternativa, puede usar un script para agregar la visita a un archivo de texto y luego enviar y eliminar el archivo de texto en la primera visita de la semana siguiente. Simplemente cargue el $message del archivo de texto con file_get_contents(). - AndersTornkvist

Interesante, nunca he trabajado con cron ... esto podría llevarme demasiado tiempo para implementarlo y desplegarlo. Ojalá pudiéramos enviar algo que alertara a través de una notificación por correo electrónico sin escribir en un archivo de texto, etc. ¡Nunca pensé que esto se hubiera convertido en una tarea así! - detonar

Sí, la mail función.

Pero creo que deberías reconsiderar este diseño, imagina lo que sucederá si la página es golpeada repentinamente por miles y miles de usuarios, o un rastreador web con errores. Un archivo de registro o una actualización de la base de datos es mucho más fácil de manejar.

contestado el 16 de mayo de 11 a las 21:05

Esta es una de las cosas de Anders. Necesitaría verificar si un usuario proviene de un nombre de dominio específico. ¿Sería esto lo suficientemente seguro? - detonar

Pregúntele a la persona que tendrá que manejar los correos y pregúntese qué la persona lo hará con el correo. ¿Es un desencadenante de una rutina manual que también debería automatizarse? - Anders Lindahl

No, solo para notificar que alguien visitó esta página por correo electrónico. - detonar

Debe planificar la inundación de correo en la fase de diseño e intentar agrupar los mensajes de una manera que satisfaga tanto la solicitud de retroalimentación de los administradores como el escenario potencial de millones de correos. ¿Qué tal un informe combinado cada (semana | día | día laborable | hora | 15 minutos)? - Anders Lindahl

Un informe diario parece una buena idea. La inundación de correo electrónico es definitivamente algo a considerar aquí. ¿Cómo reunirías todo esto, Anders? (Verifique la referencia del nombre de dominio y envíe una notificación una vez al día). - detonar

Si. Simplemente use esto en cualquier lugar de su página: Correo PHP

contestado el 16 de mayo de 11 a las 21:05

Jed, hizo y editó mi pregunta. ¿Hay alguna forma de agregar esto en una condición que verifique si la URL de referencia cumple con un determinado nombre de dominio? - detonar

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.