Foros del Web » Programando para Internet » PHP »

Email desde MySQL

Estas en el tema de Email desde MySQL en el foro de PHP en Foros del Web. Hola a todos, Tengo una duda, todos los email q manda mi web el contenido los guardo en mi BD y cuando requiero mandar un ...
  #1 (permalink)  
Antiguo 16/01/2006, 17:07
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
Busqueda Email desde MySQL

Hola a todos,
Tengo una duda, todos los email q manda mi web el contenido los guardo en mi BD y cuando requiero mandar un determinado email pues lo jalo desde BD, el problema surge pq quiero q dentro del contenido del email valla el nombre de una persona y otros datos mas q los jalo de la tabla cliente, esta parte es lo q no se como hacerlo, como insertar el nombre del cliente al contenido del email.
Código PHP:
ej.

Dear Pedro
blablablablabla 
Gracias por su respuesta
  #2 (permalink)  
Antiguo 16/01/2006, 17:17
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
¿Estas haciendo uso de la funcion mail()? o ¿Qué estas utilizando para el envio de mails?
  #3 (permalink)  
Antiguo 17/01/2006, 04:19
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
si uso la función mail(). Aun sigo sin encontrar la forma de hacer esto.
  #4 (permalink)  
Antiguo 17/01/2006, 17:22
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
no sabia q les gustaba mucho este tema jejeje
  #5 (permalink)  
Antiguo 18/01/2006, 16:57
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
Alguien sabe como hacer esto????

Última edición por hmv; 19/01/2006 a las 04:14
  #6 (permalink)  
Antiguo 19/01/2006, 04:21
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
Bueno por lo visto nadie sabe como ayudarme con este tema.
  #7 (permalink)  
Antiguo 21/01/2006, 16:05
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
Alguien sabe acerca de este tema, necesito ayuda
  #8 (permalink)  
Antiguo 21/01/2006, 16:09
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
no se entiende demasiado, creo que necesitamos más información y creo que estás mezclando los conceptos de "mail" como dirección de correo y como el contenido del correo electrónico que quieres enviar.

Por favor explicate de nuevo y con más detalle, quizás al ver cómo explicar puedas darte cuenta tú mismo de la solución.


Saludos.
  #9 (permalink)  
Antiguo 23/01/2006, 10:31
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
Pueda q no me hayan entendido bien, aqui va otra explicación:

Todo el contenido del email lo tengo guardado en la BD, entonces
cuando quiero mandar un email a una determinada persona, lo que hago es obtener el contenido del email a travez de una consulta y lo que quiero es que dentro del contenido se agregue el nombre del cliente y otros datos mas(ej user...). Esto es lo q no se como hacer.

ej de email

Estimado Henry M.

Aqui le mandamos su nombre de usuario

user: HMV

Nota:
La idea es reescribir lo que me devuelve la consulta agregando el nombre del cliente.
Esto es bueno pq el contenido del email lo manejo desde la Web Administration, entonces si quiero cambiar algo del contenido ya no es necesario ir al codigo de la web para modificar el contenido.
  #10 (permalink)  
Antiguo 23/01/2006, 10:35
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Ya tienes programado algo en php... Si sí porfavor agrega tu código para que alguien te pueda decir cuales son las modificaciones que debes hacer.
  #11 (permalink)  
Antiguo 23/01/2006, 10:45
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
Hola mauled, gracias por responder.
Aun no tengo nada jeje solo la idea de REESCRIBIR lo q me devuelve la consulta, lo que quiero es la idea de como hacerlo y yo me encargo de programarlo, pero si me ponen un poco de codigo mucho mejor

Gracias
  #12 (permalink)  
Antiguo 23/01/2006, 11:18
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
A ver:

1º) Por favor si quieres volver a subir tu tema al principio para que los vean, trata de dar mas datos en cada "flote" que le das al thread.

2º) El tema se resuelve mas simple de lo que crees. Solamente necesitas un bucle para realizarlo.

Código PHP:
$resultado_consulta = .............;

while(
$row mysql_fetch_array($resultado_consulta))
{
        
mensaje "Estimado ".$row['nombre'].": Aquí le enviamos bla bla bla....";
        
mail(......................,$mensaje);

Espero que entiendas el concepto de que he puesto.

saludos.
  #13 (permalink)  
Antiguo 23/01/2006, 11:36
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
Hola dario, si bueno debi dar mas datos acerca del caso.
El tema no es tan facil, se supone que el cuerpo del email esta dentro de la BD.
yo hago dos consultas:
1- para obtener el contenido del email q segun le corresponde al cliente
2-Obtengo los datos del cliente

entonces lo asocio los dos poniendo en nombre del cliente dentro del contenido, no se si me explico bien. Como dije anteriormente es REESCRIBIR el contenido agregando el nombre del cliente.
Cita:
$resultado_consulta = .............;

while($row = mysql_fetch_array($resultado_consulta))
{
mensaje = "Estimado ".$row['nombre'].": Aquí le enviamos bla bla bla....";
mail(......................,$mensaje);
}
Gracias
  #14 (permalink)  
Antiguo 23/01/2006, 11:55
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
Bueno en ese caso, como delimitas el lugar donde quieres que aparezca el nombre del usuario dentro del cuerpo del mensaje???????

A ver si nos entendemos, si el cuerpo del mensaje (no importa si esta guardado en la DB, en archivos, en un cookie o donde sea) es de la siguiente forma:
Código:
Estimado  : le enviamos el bla bla bla......
Yo paso y le dejo el honor de solucionarlo a otro usuario por no es nada lindo el código que necesitas para resolver (no por lo difícil, si no por lo horrible que seria).

Ahora si el mensaje seria de esta forma:
Código:
Estimado {NOMBRE}: le enviamos bla bla bla.........
El código pasaría a ser el siguiente (con una sola variante del código anterior):
Código PHP:
$resultado_consulta = .............;
$mensaje_DB = ..........; //El mensaje extraído de la DB

while($row mysql_fetch_array($resultado_consulta))
{
        
$mensaje_DB ereg_replace("{NOMBRE}",$row['nombre'],$mensaje_DB);

        
mail(......................,$mensaje);

Saludos.
  #15 (permalink)  
Antiguo 23/01/2006, 12:06
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
Yo habia pensado de esta manera:


Cuando cree el cuerpo del email a traves del form(en un TextArea) haria lo sgte:

Estimado <? echo $rs['firstname']; ?>
Aqui le mandamos.......


Entonces cuando obtenga los datos del cliente a traves del recordset $rs
y ademas obtenga el cuerpo del email, este ya sabra q tiene q ponerle el nombre del cliente pues dentro del cuerpo esta la etiqueta <? echo $rs[firstname];?> pero no me sale.

sigo buscando la solución.
  #16 (permalink)  
Antiguo 23/01/2006, 12:10
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 12 años, 9 meses
Puntos: 33
Postea los dos query's que estas realizando.
  #17 (permalink)  
Antiguo 23/01/2006, 12:17
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
Pero claro que no te funcionara, el contenido del textarea te lo pasara como si fuera un string normal y corriente. Lo que podrías hacer es que el contenido del textarea lo pases por la función eval(), pero yo no lo recomiendo, gastas muchos recursos para algo innecesario que se puede arreglar de otras formas, y sobre todo que podrías tener un gran agujero en la seguridad de tu sitio.
Aparte no sé porque no quieres hacer de la manera que te planteo, si la mayoría que hace esto lo hace de este modo (por no decir todos, algunos usan unas clases para esto).

Bueno quiero aclarar algo, porque todavía no sé si te quedo claro, para que cada mail lleve el nombre de cada usuario, no se puede escapar de la forma planteada, es la única forma de hacerlo, te guste o no te guste es esa.

Saludos.
  #18 (permalink)  
Antiguo 23/01/2006, 12:49
hmv
 
Fecha de Ingreso: abril-2005
Mensajes: 311
Antigüedad: 12 años, 8 meses
Puntos: 0
ok, gracias, voy a seguir tu idea, siii me parece la mas correcta y cuando requiera insertar mas datos del cliente al email pues invocare varias veces al ereg_replace para reemplazarlo

muchas gracias DARIO.
  #19 (permalink)  
Antiguo 23/01/2006, 13:17
 
Fecha de Ingreso: junio-2005
Mensajes: 981
Antigüedad: 12 años, 6 meses
Puntos: 2
De nada. Pero te comento que si no quieres llamar varias veces a la función ereg_replace() tiene la siguiente función preg_replace() Que le puedes pasar unos array con la búsqueda y otro con los remplazos.
Código PHP:
$texto "hola que tal, queria ver si se pueden modificar por medio de un array";

$busqueda = array("#hola#","#array#","#si#");
$remplazo = array("HOLA","ARRAY","NO");

echo 
preg_replace($busqueda,$remplazo,$texto); 
Aquí tienes un link para que leas algo de expresiones regulares si quieres.
http://www.ignside.net/man/php/regex.php

Saludos.
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.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:33.