Foros del Web » Programando para Internet » PHP »

Enviar a multiples destinatarios, con mail()

Estas en el tema de Enviar a multiples destinatarios, con mail() en el foro de PHP en Foros del Web. Buenas atodos, tengo lo siguiente. recibo los id de 3 trabajadores, a los cuales quiero asignar un trabajo. y quiero enviar un email notificandoles que ...
  #1 (permalink)  
Antiguo 25/09/2006, 05:23
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
Enviar a multiples destinatarios, con mail()

Buenas atodos, tengo lo siguiente.

recibo los id de 3 trabajadores, a los cuales quiero asignar un trabajo. y quiero enviar un email notificandoles que tienen un nuevo trabajo en su intranet, a los tres a la vez.

he intentado hacer lo siguiente:

Código:
		$query2 = mysql_query ("SELECT * FROM trabajadores WHERE idtrabajador IN ('$idtrabajador','$idtrabajador')");
 		while ($dato=mysql_fetch_array($query2)){
		//$dato=mysql_fetch_array($query2);
  		$mailtrabajador=$dato["mail"];
		$nombretrabajador=$dato["nombre"];
		$comentarios1=$comentarios;
		
		include("mail_trabajador.php");
en el include, tengo lo siguiente:

Código:
$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: [email protected]\r\n";
  
  $asunto = "Notificación alta de trabajo";
  $para=$mailtrabajador;
  $mensaje ="Estimado/a ".$nombretrabajadpr." .<br><br><br>Se ha insertado un nuevo trabajo, con la referencia <b>".$nombretrabajo."</b> <br><br><br><b>Comentarios:</b> ".$comentarios1."<br><br><br>Acceda a su panel de control para descargar el archivo.";
  $mail = mail($para,$asunto,$mensaje,$headers);
el problema es que solo me lo envia al primer trabajador, y no a los otros dos. que falla para que no se envie a los tres? está mal empleada la senrtencia IN?

saludos,

ferranEB
  #2 (permalink)  
Antiguo 25/09/2006, 05:46
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Hola!
xq no pruebas de imprimir el resultado d esa consulta con un simple echo a ver q te sale? y asi saldras de dudas!
=mente porque no haces un clausula Where normal?
La clausula In se utiliza para hacer subconsultas, diria q de la forma q estas empleando no es la correcta.
un ejemplo seria asi:
Código:
 SELECT * FROM Productos WHERE IDProducto IN 
    (SELECT IDProducto FROM DetallePedido WHERE Descuento >=  0.25);
saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #3 (permalink)  
Antiguo 25/09/2006, 05:53
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
no entiendo sergi. el tema esta en que tengo tres listas desplegables (idtrabajador1,2,3), y segun elija uno u otro el id cambiara.

a que te refieres con hacer un where normal?

a que te refieres, hacer un echo $query2?

saludos
  #4 (permalink)  
Antiguo 25/09/2006, 06:01
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
a lo de le echo me refiero a q imprimas el resultado de tu consulta.
aunke estoy un poko liado con ese IN q has exo... bueno tu imprime y asi sabras q resultado te da la consulta y si te interesa.
Código PHP:
$query2 mysql_query ("SELECT * FROM trabajadores WHERE idtrabajador IN ('$idtrabajador','$idtrabajador')");
while (
$dato=mysql_fetch_array($query2)){
//$dato=mysql_fetch_array($query2);
$mailtrabajador=$dato["mail"];
$nombretrabajador=$dato["nombre"];
$comentarios1=$comentarios;
echo 
$mailtrabajador;
echo 
$nombretrabajador;
echo 
$comentarios1;

asi veras si coje los tres trabajadores o no te los coje.
en cuanto a lo q te dicho de un where normal me referia a lo siguiente:
Código PHP:
$query2 mysql_query ("SELECT * FROM trabajadores WHERE idtrabajador=$idtrabajador1 OR idtrabajador=$idtrabajador2  OR idtrabajador=$idtrabajador3"); 
asi cojes los tres trabajadores seguro...
saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
  #5 (permalink)  
Antiguo 25/09/2006, 06:11
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
buenas sergio, he probado con tu consulta. he puesto idtrabajador1 y el idtrabajador2, y solo me lo envia al segundo.... el echo me muestra el nombre del segundo trabajador.

alguna otra sugerencia?
  #6 (permalink)  
Antiguo 25/09/2006, 06:40
 
Fecha de Ingreso: septiembre-2006
Mensajes: 59
Antigüedad: 17 años, 6 meses
Puntos: 0
Hola.

La query esta bien. Da igual que hagas where.... or tal que con la clausula in.

La question es que no te llama 3 veces a la funcion mail.

Primero verifica que te devuelve 3 registros.

Si te los devuelve, printa cada vez que llames a la funcion mail, el usuario que printa. Y ahi tendras una pista.

Si te printa los 3 usuarios, es raro que te mande 3 emails...

Si no, aunque sea una tonteria, no hagas include.. metelo dentro de la funcion a ver si asi te lo hace...

La verdad que es muy raro ya que lo tienes bien puesto....

Un saludo
  #7 (permalink)  
Antiguo 25/09/2006, 07:53
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 22 años, 3 meses
Puntos: 3
buenas thonso. el caso es que si printo en pantalla, solo me muetsra el dato del segundo trabajador, es decir, si tengo:

select1- [email protected]
select2- [email protected]

me lo envia [email protected]

debe haber algo del while que este mal.. akguien sabe que puede ser?
  #8 (permalink)  
Antiguo 25/09/2006, 08:22
 
Fecha de Ingreso: enero-2005
Ubicación: Barcelona
Mensajes: 1.473
Antigüedad: 19 años, 3 meses
Puntos: 10
Cita:
Iniciado por Thonso22 Ver Mensaje
Primero verifica que te devuelve 3 registros.
estoy de acuerdo con eso...
comrpueba q los id de los trabajadores q te pasen sean correctos, es decir, printa idtrabajador1,idtrabajador2 y idtrabajador3. si los datos son correctos aplicando la consulta q tienes te tendria q mandar el mail a los 3 usuarios.

otra cosa q se me ocurre es q uses mysq_num_rows q te devolvera el número de filas de la query y asi sabras el total de mails q te va a mandar.

si te sigue saliendo un usuario comprueba tus datos en la BD xq no tiene vuelta de hoja!

una pregunta.. como te pasan a ti los id de los trabajadores? kizas sea solo un fallo de variables, q asignes el id del trabajador a la misma variable... no ser... podrias poner tu codigo completo a ver si se vee algo mas.

saludos
__________________
"Cada hombre es el hijo de su propio trabajo"
Miguel de Cervantes Saavedra
"La experiencia es algo que no consigues hasta justo depués de necesitarla"
Laurence Olivier
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 13:44.