Foros del Web » Programando para Internet » PHP »

Newsletter con PHP

Estas en el tema de Newsletter con PHP en el foro de PHP en Foros del Web. Que tal, Bien, si se tiene un sistema de newsletters con php, que se envía a los correos que están en una base de datos ...
  #1 (permalink)  
Antiguo 17/05/2005, 17:23
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Newsletter con PHP

Que tal,

Bien, si se tiene un sistema de newsletters con php, que se envía a los correos que están en una base de datos y este email se envía en formato html.

¿ Como puede hacerse para saber quienes de esos usuarios a los que se les envió abrieron efectivamente el newsletter que les enviamos a su correo?.


Saludos.
__________________
EL LIMITE ES EL UNIVERSO
  #2 (permalink)  
Antiguo 17/05/2005, 20:39
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por jpogsistem
¿ Como puede hacerse para saber quienes de esos usuarios a los que se les envió abrieron efectivamente el newsletter que les enviamos a su correo?.
Crea un link de confirmación...

Anteriormente se usaban imagenes "inteligentes".. según leí, nunca lo probé... pero esas opciones son bloqueadas por los servidores de correo... piensalo bien y ve que puede tomarse como un problema de seguridad...

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 18/05/2005, 11:02
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
pero esas opciones son bloqueadas por los servidores de correo
Son bloquedas por los "clientes" de correo .. es decir, por tu "outlook" .. o cliente de correo web-mail (hotmail, etc ..). O por lo menos "avisan" de que tal e-mail contiene "llamadas" a contenido externo (http://.......)

----------------

Lo ideal es que coloques un link en tu e-mail que apunte a tu script PHP de confirmación .. algo tipo:

Código PHP:
<a href="http://www.nose.nose/[email protected]">Haga click aquí para confirmar lectura</a>

y si no funciona el link .. .. dirijase a:
http://www.nose.nose/[email protected] 
Ya sé que esto es "engorroso" cara a quien recibe el e-mail .. pero realmente no hay otra forma "segura" de confirmar que el receptor a abierto su e-mail.

Un saludo,

Un saludo,
  #4 (permalink)  
Antiguo 18/05/2005, 13:57
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
Gracias,

Lo preguntaba precisamente por lo de la imágenes inteligentes, pero si no existe la posibilidad de algo automático como un recibo de conformación que se pueda incluir con solo abrir el correo, la opción es el link de confirmación.

un saludo.
__________________
EL LIMITE ES EL UNIVERSO
  #5 (permalink)  
Antiguo 19/05/2005, 04:58
 
Fecha de Ingreso: diciembre-2003
Mensajes: 59
Antigüedad: 20 años, 3 meses
Puntos: 0
Hola yo tengo el mismo problema q tu, y tambien prefiero prescindir de ese enlace de confirmacion, creo q es demasiado molesto, debe de haber otra forma.......si sabes algo en el futuro m lo puedes decir...??
gracias
  #6 (permalink)  
Antiguo 26/05/2005, 02:57
 
Fecha de Ingreso: diciembre-2003
Mensajes: 59
Antigüedad: 20 años, 3 meses
Puntos: 0
la solucion

Hola amigos! Ya he conseguido comprobar si el usuario abre un correo html. Es como dijeron antes, usando imagenes inteligentes. Lo he probado abriendo el correo con el Foxmail y con hotmail y me va bien. Aqui lo dejo:

En el SRC de una de la imagenes que se cargan pones un archivo PHP en lugar de la foto:

Código HTML:
<img src="cargar_img.php"> 
Este script contiene las funciones que registraran en la BD que el correo hasido abierto, etc, y luego devuelve la imagen que tiene q aparecer.

Aqui dejo el codigo del archivo PHP, que guarda la estadistica y devueve al imagen:

Código PHP:
<?php
    
include("conexion.php");
    
$link=conectar();
        
    
//guardamos la pagina de la cual viene el user
    
$Estadistica "INSERT INTO estadistica (`referer`,`fecha`) values('abierto_correo',CURDATE());";
    
$inserta mysql_query($Estadistica$link);

    
//Al cargarse la imagen desde el servidor, se ejecuta el script y se resitra la visita desde el cliente de correo
    //Ahora se de vuelve la imagen que queremos mostrar, una vez q el script ha guardado la visita
           
     // Normally $filename would depend on $_GET, etc.
             
$filename 'img/foto_central.jpg';
             
header('Content-type: image/jpeg');
             
header('Content-transfer-encoding: binary');
             
header('Content-length: '.filesize($filename));
             
readfile($filename);

?>
Espero q os sirva!!!
SALUDOS!!!
  #7 (permalink)  
Antiguo 26/05/2005, 09:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Sólo un detalle:

EL link de la imagen (bueno del script PHP que va generar la imagen y hacer otro proceso anexo) ha de ser relativo al sitio (a tus servidores):
Código PHP:
<img src="http://www.tal.tal/cargar_img.php"
Y confiar que el destinatario del e-mail no tenga desactivao los "linkeos" remotos de archivos e imagenes. En tal caso se le notificará que se está intentando acceder a un URL externo .. o será derechamente bloqueado.

Un saludo,
  #8 (permalink)  
Antiguo 26/05/2005, 15:20
Avatar de capuleto  
Fecha de Ingreso: octubre-2003
Ubicación: Cartagena
Mensajes: 219
Antigüedad: 20 años, 6 meses
Puntos: 0
Hola, me interesa tu sistema de news porque no posteas el codigo desde hacer rayo me gustaria saber como implementarlo, ok..gracias....
__________________
...Definitivamente Soy Nadie entre los Sabios....*-*Capuleto*-*
  #9 (permalink)  
Antiguo 26/05/2005, 15:27
Avatar de jpogsistem  
Fecha de Ingreso: diciembre-2001
Mensajes: 2.405
Antigüedad: 22 años, 4 meses
Puntos: 4
capuleto, el sistema de newletters no lo he desarrollado aún. He enviado emils en formato html pero con código ASP, esto lo he posteado porque hace parte de la formulación de un proyecto y quería preguntarlo para saber si es posible o no.

Quizás en hotscrips encuentres algo:

http://www.hotscripts.com/PHP/Script...ams/index.html


Muchas gracias a todos por contestar.
__________________
EL LIMITE ES EL UNIVERSO
  #10 (permalink)  
Antiguo 30/05/2005, 02:24
 
Fecha de Ingreso: diciembre-2003
Mensajes: 59
Antigüedad: 20 años, 3 meses
Puntos: 0
Lo de que los usuarios que tengan los linkeos desactivados, es cierto que no ejecuta el script, pues cuando el correo se abre con outlook, no se registra la estadistica. Hay alguna solucion???
  #11 (permalink)  
Antiguo 30/05/2005, 07:16
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tendras que indicar a tu usuario en el e-mail que "porfavor" (si tanto requires la confirmación de lectura) entre a tal link -a mano- .. o acepte ese tipo de links externos al e-mail. NO hay otra forma más segura.

Como comentario .. por mi parte últimamente estoy en proceso de deshacerme del e-mail para envio de documentación/etc .. (siendo para "clientes" que usen mis servicios) .. Les envio un e-mail a lo sumo diciendo "ya tienen disponible su información en su sección de "clientes" de tal ....". Es en la web donde hago todo el resgistro de que si vieron su inforción ... cuando accediero .. etc ... Realmente el usuario que quiera ver la información que se registró o es usuario de tus sistemas ... no tendrá ningún reparo en seguir el link. Lo bueno es "avisar" de que la información está disponible (para que no les obligues a que tengar que visitar asiduamente sus secciones de "clientes" ..)

Por supuesto .. esto no es válido para una campaña de "e-mail" (por no decir casi "spam") y controlar si se abrieron esos e-mails.

Un saludo,
  #12 (permalink)  
Antiguo 05/09/2006, 15:00
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Hola colegas, estoy muy interesado en el post, y segui la informacion de zidane, pero no logre hacerlo funcionar. Cree el archivo php con el nombre de "cargar_img.php", luego envie el email con la imagen con ese nombre, y al abrir el archivo en mi hosting "cargar_img.php" me sale este error:



Warning: main(conexion.php): failed to open stream: No such file or directory in /home/il000312/public_html/cargar_img.php on line 2

Warning: main(conexion.php): failed to open stream: No such file or directory in /home/il000312/public_html/cargar_img.php on line 2

Warning: main(conexion.php): failed to open stream: No such file or directory in /home/il000312/public_html/cargar_img.php on line 2

Warning: main(): Failed opening 'conexion.php' for inclusion (include_path='.:/opt/apache/lib/php') in /home/il000312/public_html/cargar_img.php on line 2

Fatal error: Call to undefined function: conectar() in /home/il000312/public_html/cargar_img.php on line 3


Por que ocurre esto? (lamentablemente no manejo php, y lamento si es una burrada pero no logro resolverlo). Alguien que me tire una mano?? gracias
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #13 (permalink)  
Antiguo 05/09/2006, 15:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Pablus00 Ver Mensaje
Hola colegas, estoy muy interesado en el post, y segui la informacion de zidane, pero no logre hacerlo funcionar. Cree el archivo php con el nombre de "cargar_img.php", luego envie el email con la imagen con ese nombre, y al abrir el archivo en mi hosting "cargar_img.php" me sale este error:



Warning: main(conexion.php): failed to open stream: No such file or directory in /home/il000312/public_html/cargar_img.php on line 2

Warning: main(conexion.php): failed to open stream: No such file or directory in /home/il000312/public_html/cargar_img.php on line 2

Warning: main(conexion.php): failed to open stream: No such file or directory in /home/il000312/public_html/cargar_img.php on line 2

Warning: main(): Failed opening 'conexion.php' for inclusion (include_path='.:/opt/apache/lib/php') in /home/il000312/public_html/cargar_img.php on line 2

Fatal error: Call to undefined function: conectar() in /home/il000312/public_html/cargar_img.php on line 3


Por que ocurre esto? (lamentablemente no manejo php, y lamento si es una burrada pero no logro resolverlo). Alguien que me tire una mano?? gracias
Si te fijas en mis própios comentarios en este mismo mensaje veras que el TAG de imagen que debes usar debe apuntar a tu URL completo donde esté tu script "cargar_img.php" en tu hosting:

Cita:
EL link de la imagen (bueno del script PHP que va generar la imagen y hacer otro proceso anexo) ha de ser relativo al sitio (a tus servidores):

Código PHP:
Código PHP:
<img src="http://www.tal.tal/cargar_img.php"
Y confiar que el destinatario del e-mail no tenga desactivao los "linkeos" remotos de archivos e imagenes. En tal caso se le notificará que se está intentando acceder a un URL externo .. o será derechamente bloqueado.
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #14 (permalink)  
Antiguo 05/09/2006, 15:13
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Gracias Cluster ;) ahora hago el cambio y te cuento. Pero, al leer en un parte del codigo "mysql_query" imagine que necesitaba alguna base de datos. Hace falta tenerlo o solo con albrir el php me aparece el resultado
(Perdon por mi ignorancia, pero php y mysql no son mi fuerte)
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #15 (permalink)  
Antiguo 05/09/2006, 15:20
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Pablus00 Ver Mensaje
Gracias Cluster ;) ahora hago el cambio y te cuento. Pero, al leer en un parte del codigo "mysql_query" imagine que necesitaba alguna base de datos. Hace falta tenerlo o solo con albrir el php me aparece el resultado
(Perdon por mi ignorancia, pero php y mysql no son mi fuerte)
Disculpa .. pero .. tú sabes que es lo que hace este sistema o con qué objetivo?.

Es importante que lo sepas. Y si tienes dudas, lo mejor es: -preguntar-

Así como se presenta este código -sí-, hace falta una Base de datos (una tabla concreta) .. pues se trata de que en ella vas a registrar las veces que un e-mail tuyo se "abre" en cualquier cliente de correo (que acepte abrir imagenes o archivos vinculados externos y cuando se abra esté en "línea" ese cliente de correo).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #16 (permalink)  
Antiguo 05/09/2006, 18:19
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Hola Cluster, si, lo tengo super claro, estoy suscripto a un post en foros del cual venimos investigando este tema desde hace rato,

http://www.forosdelweb.com/f10/mi-experiencia-con-las-campanas-email-marketing-open-rates-394654/

y hace pocos dias luego de buscar por toda la web, un link me trajo nuevamente a foros del web con este post (sin mencionar que soy lic en mkt y trabajo de ello, lo que no soy es ing en sistemas para manejar php o mysql) por eso mis dudas :)

No quiero abusar de la amabilidad con que nos ayudan siempre, pero si alguien que tenga algo de tiempo para facilitarme el archivo de la base de datos, me seria de gran ayuda, asi lo pongo en practica. Gracias!!
__________________
-- Nunca te des por vencido, aún vencido -- Web

Última edición por Pablus00; 05/09/2006 a las 20:57
  #17 (permalink)  
Antiguo 05/09/2006, 19:08
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Bueno .. la tabla en tu BBDD que debes crear es bien simple (si quieres probar el ejemplo aquí mencionado).

La tabla se llamaría:
estadistica

Y contendría dos campos mínimo:

referer (un campo de texto: VARCHAR .. sobraría)
fecha (campo en Mysql tipo "DATE" o "DATETIME" y cambias CURDATE() por NOW() que te entregará la fecha con hora actual de cuando se abrió tu e-mail supuestamente)

No sé si sabrías implementar esa función "conectar()" .. En ese caso te recomendaría antes de nada leer algún tutorial de PHP (todos tienen capítulo sobre uso de Mysql). Y luego volver a ver el código que se propone (seguro que para ese momento hasta tu mismo lo mejoras).


Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #18 (permalink)  
Antiguo 05/09/2006, 19:11
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
(sin mencionar que soy lic en mkt y trabajo de ello, lo que no soy es ing en sistemas para manejar php o mysql) por eso mis dudas :)
Esto es lo de menos .. yo no soy "lic" (ni "ing") de sistemas ni parecido, soy autodidacta por naturaleza y trabajo actualmente de esto. Eso sí te recomiendo no ir al "grano" como es tu caso, intenta leer algo sobre PHP, sobre Base de datos y diseño de estas y como usar PHP+Mysql .. te irá mejor. (Y si no deseas esto, no hay problema pero en ese caso busca a un programador que te apoye en ese punto y cada uno a su especialidad).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #19 (permalink)  
Antiguo 06/09/2006, 21:18
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Hola Cluster, a pesar de que es un desafio para mi encarar 2 lenguajes nuevos, (x el tiempo y el esfuerzo q demanda) aun asi, voy a intentarlo, espero contar con tu ayuda en mis nuevas dudas, ya que creo que se vienen mas de una, abrazos
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #20 (permalink)  
Antiguo 25/09/2006, 16:17
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Ya lo pude hechar a andar, gracias por la info, en especial a sapinto!
Pensando en como evitar que un email leido mas de 1 vez por la misma persona sea repetido en la base de datos, habia pensado en registar la ip, y alguin script que no permita ingresar registros con la ip repetida, es posible?
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #21 (permalink)  
Antiguo 25/09/2006, 19:03
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Iniciado por Pablus00 Ver Mensaje
Ya lo pude hechar a andar, gracias por la info, en especial a sapinto!
Pensando en como evitar que un email leido mas de 1 vez por la misma persona sea repetido en la base de datos, habia pensado en registar la ip, y alguin script que no permita ingresar registros con la ip repetida, es posible?
Bueno .. técnicamente si tu campo que registra tu IP en tu BBDD lo dejas como "unico" (UNIQUE) .. al intentar insertar un dato que está repetido ya te saltará con un error por parte del motor de tu BBDD.

Pero, lo que se suele hacer para no tener que recurrir a "ver el error producido" es hacer una consulta SQL -previa- a tu BBDD preguntando por la "IP" (dato en general) si ya está . .y si no está .. le haces tu "INSERT".

Código PHP:
$sql="SELECT IP FROM registro_IPs WHERE ip='".$_SERVER['REMOTE_ADDR']."'";

$resultadomysql_query($sql) or die (mysql_errro());

if (
mysql_num_rows($resultado)==0){
    
mysql_query("INSERT INTO .......");

Pero .. vas a tener algunos problemas de fondo. Tu piensas que todo el mundo anda con "IP Fija" . .eso no es cierto, tampoco todo el mundo abre sus e-mails en un mismo lugar; piensa cuanta gente ve su e-mail en el trabajo y en su casa .. usan webmail's .. etc. Otros tantos pasan por conexiones bajo proxy's .. así que aparecen bajo una misma IP todos (en LAN's de empresas pasa eso ..)

En fin .. OJO con esos datalles, ¿valdrá tanto desgaste y recursos para obtener un dato como este con tantos problemas?. Eso lo decidiras tu.

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #22 (permalink)  
Antiguo 26/09/2006, 11:27
Avatar de Pablus00  
Fecha de Ingreso: diciembre-2003
Ubicación: A un click de distancia
Mensajes: 1.044
Antigüedad: 20 años, 4 meses
Puntos: 11
Hola Cluster, gracias por responder a la brevedad, entiendo el punto que comentas. Estoy de acuerdo en lo que comentas de la IP`s variables, no lo habia considerado, quiza con este arreglo, se reducira en parte el margen de error de esta aplicasion, pero no es lo que buscamos...

Corregime si me equivoco, por que en muchas cosas me estoy interiorisando:

Es posible que: a cada email se le asigne un numero incremental, en el titulo o en el cuerpo del email, y que este numero sea registrado como la ip en la base de datos, de esa manera este numero identificaria a ese email en particular sin errores.
__________________
-- Nunca te des por vencido, aún vencido -- Web
  #23 (permalink)  
Antiguo 26/09/2006, 11:34
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Cita:
Es posible que: a cada email se le asigne un numero incremental, en el titulo o en el cuerpo del email, y que este numero sea registrado como la ip en la base de datos, de esa manera este numero identificaria a ese email en particular sin errores.
Claro que sí .. de hecho no sé para que te habías liado con la "IP" .. Pero lo del "n° incremetal" y el e-mail está de más .. Lo que necesitas es un "ID" único y largo, para evitar que si lo alteran no "pueda" coincidir con otro que tengas registrado.

Ese "código" lo asocias a tu e-mail enviado en tus BBDD o de donde tomes tus datos o como registro para este tema concreto.


Al generar tu e-mail en HTML con tu "imagen" camuflada ..

Código PHP:
<img src="http://www.tusitio.tal/open_rate.php?codigo=<? echo $codigo ?>">
Y el código lo puedes generar por ejemplo con esta función presentada en esta FAQ:

http://www.forosdelweb.com/showthrea...483#post411483

El problema de esta "técnica" es que ya no va a quedar tan "camuflado" tu imagen (la que generas) para hacer el proceso "en tus servidores".

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 13:35.