Como ejecutar un script en PHP cuando alguien abre un email.

La idea es poder ejecutar automáticamente un script en PHP cuando alguien abre un email. Explicaré como hacerlo.

Esto puede resultar muy útil ya que nos permite poder hacer infinidades de cosas al momento de querer saber que pasó con el email que hemos enviado. Por ejemplo podriamos saber si fue abierto o no, cuantas veces fue leido, a que hora, desde que dirección IP, etc.

Que necesitamos?

  1. Saber algo de HTML.
  2. PHP, obiamente.
  3. Un servidor donde alojar nuestro archivo .php.
  4. Un sevidor de correo.

Si alguíen pensó en embeber un javascript os adelanto que no se puede ya que estas etiquetas no son ejecutadas por ningún cliente de correo (por lo menos no conozco ninguno que las ejecute si alguien conoce que avise) por medidas de seguridad.

Tampoco queremos que la persona tenga que hacer clic en nigún link ni nada por el estilo.

Pasos:

  1. Crear el archivo php que contenga el script a ejecutar. Ejemplo: creamos el archivo script.php con el siguiente contenido.
  2. <?php

    $asunto = "El email fue leido";
    $mensaje = "El email que enviaste a tal persona fue mostrado en su pantalla";
    mail("mi_correo@dominio.com", $asunto, $mensaje);
    ?>

    Es decir, envío un correo electrónico a mi dirección cuando la persona vio el email. Una vez que tenemos el archivo lo subimos a nuestro servidor.

  3. Posteriormente hay que crear un email con formato HTML desde un cliente de correo que permita hacerlo así y no con texto plano.
  4. Ahora viene lo fundamental para que se pueda ejecutar el script automáticamente, y básicamente consiste en poner en algún lado del email una etiquera de imágen que en lugar de referenciar una imagen, referencie un archivo .php. Generalmente los clientes de correos interpretan el HTML y muestran las imágenes referenciadas automáticamente. Con lo cual si nosotros referenciamos a un archivo PHP éste se ejecutará automáticamente sin necesidad de ninguna intervención por parte del receptor.
  5. Ejemplo:

    <HTML>
    Hola Destinatario!
    <img src="http://mi_servidor.com/script.php"/> </HTML>

  6. Ahora solo resta enviar el email y que el destinatario lo abra. Cuando esto ocurra nuestro PHP se ejecutará. Obiamente que para que ésto funcione el destinatario debe leer el email con una pc que esté concectada a internet al momento de la apertura del correo.

Como última aclaración, cuando el el detinatario vea el correo, probablemente éste vea como una imagen que no se mostró(el cuadradito con la cruz roja).

Ésto lo solucionamos poniendo en nuestro script PHP que se ejecuta (primer ejemplo) en la última línea algo como esto:

<?php
header ("Location: http://www.mi_dominio.com/mi_imagen.jpg");
?>

Espero que les sirva el pequeño truquito.

Saludos, Geroman. 😉

Etiquetado con: , ,

14 comentarios en «Como ejecutar un script en PHP cuando alguien abre un email.»

  1. Bastante interesante, no pensé que fuera posible algo así. Este «truquito» ya esta probado? lo haz hecho y funciona? habrá que probarlo… Gracias por la idea, nunca lo hubiera imaginado 😉

  2. Jajaja, siempre cargué imágenes por php y no se por qué no se me ocurrió hacer esto… Obvio que funciona!!! jajaja
    Gracias…

  3. Es muy interesante este truco, les animo a continuen con esta pagina que contiene información de gran atención.

  4. hola que tal mi pregunta seria la siguiente se puede obtener la direccion de correo desde la que dan click
    Gracias

  5. super.. bueno .
    alguien a sacado el mail de la persona que abrio el correo. se piede hacer??
    otra duda..para que envie el correo el script los envia por php automatico..

  6. Hola
    Lo que ami me pasa es que me cambia <?php por <!–?php, ¿qué puedo hacer?
    Muchas gracias de antemano

  7. A pasado ya mucho tiempo…lo se…

    Pero voy loco intentando encontrar la forma de recuperar con el script la cuenta de correo que abrió el email ((espia)).

    Si sabes como se puede hacer por favor dímelo.

  8. Gracias . Funciona perféctamente . Sólo una aportación . El header no evita que aparezca el simbolito de imagen no encontrada . Pero ¡ eureka ! he aquí una solución : incluir la imagen como background de un TD . Lo he probado con un png transparente y con un jpg con gráficos . Funciona igual . La cruz no se ve . El scrip php puede conectar a una base de datos . Al disponer del mail destinatario todo es posible . Se pueden insertar registros o modificar con los datos que interesen .

  9. buenas tardes…disculpe solo quisiera que me aclararas como puedo saber si alguien leyo mi correo que le e enviado desde un formulario…
    lo que pasa es que me encontre con tu blog y me parece que puede solucionar mi problema solo que no lo entiendo muy bien tu explicacion no se si podrias ayudarme

  10. Lo implementé, pero envío correos a Medio Oriente y a Asia, y no me funciona. Algunos de los correos que envío son a usuarios con cuenta de gmail y outlook. Sabes si hay algunas restricciones en esas zonas que no dejan que funcione?

    Para correos que envío a Europa, USA y Sudamérica si funciona.

    Gracias

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.