Foros del Web » Programando para Internet » PHP »

grave error con phpmailer

Estas en el tema de grave error con phpmailer en el foro de PHP en Foros del Web. Tube un gravisimo error al intentar enviar mails con el phpmailer mi intencion era enviar un mails a varias personas un mail para cada una ...
  #1 (permalink)  
Antiguo 27/04/2011, 04:46
 
Fecha de Ingreso: enero-2006
Mensajes: 199
Antigüedad: 18 años, 3 meses
Puntos: 5
grave error con phpmailer

Tube un gravisimo error al intentar enviar mails con el phpmailer

mi intencion era enviar un mails a varias personas

un mail para cada una de una misma plantilla solo cambiando datos de caa usuario pero el phpmailer envio todos los mails de todos los usuarios a cada uno de los usuarios

por ejemplo tenia 10 usuarios y eran solo 10 mails y le correspondia 1 mail cada uno con sus respectivos datos.

pero lo que sucedio fue que se envio 10 mails a cada unos de los usuarios. los usuarios recibieron su mail mas otros 9 que correspondian a otros usuarios

Que hice mal?



Código PHP:
Ver original
  1. require("class.phpmailer.php");
  2.  
  3. $mail = new PHPMailer();
  4.  
  5. $mail->IsSMTP();
  6. $mail->SMTPAuth = true;
  7. $mail->Username = "[email protected]";
  8. $mail->Password = "mipass";
  9. $mail->Host = "localhost";
  10. $mail->From = "[email protected]";
  11. $mail->FromName = "Administrador";
  12. $mail->Subject = "$asunto";
  13.  
  14.  
  15. include("../conexion.php");
  16.  
  17. $result = mysql_query("SELECT id, nick, estatus FROM usuarios ORDER BY id ASC", $link);
  18. $total = mysql_num_rows($result);
  19.  
  20. if ($row = mysql_fetch_array($result)){
  21. while ($field = mysql_fetch_field($result)){
  22. } do {
  23. $id =$row['id'];
  24. $nombreuser =$row['nick'];
  25. $estatus =$row['estatus'];
  26.  
  27. $cantidad=$cantidad+1;
  28.  
  29. $contenido="Hola $nombreuser estimado usuario
  30.  
  31. $mensaje
  32.  
  33. IMPTE: No responda este Mail
  34. ";
  35.  
  36. if($cantidad >= 10){
  37. sleep(5);
  38. $cantidad=0;
  39. }
  40.  
  41. $mail->AddAddress("$email","$nombreuser");
  42. $mail->WordWrap = 50;
  43. $mail->Body = $contenido;
  44. $mail->Send();
  45.  
  46. if(!$mail->Send()){    
  47. echo "$email >> NO! <br/>";
  48. }else{    
  49. echo "$email >> OK! <br/>";
  50. }
  51.  
  52. } while ($row = mysql_fetch_array($result));
  53. }


porque se fueron agregando los mails no se debian sumplantar en el ciclo como se borran los anterior para que solo envie un correo por usuario?
  #2 (permalink)  
Antiguo 27/04/2011, 06:40
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: grave error con phpmailer

Si vas a enviar los correos de esa forma, es preferible que envies la informacion como CC y no como correo principal. Sobre todo si es un correo masivo. Otra forma es enviar el correo, luego liberar la cola de correo mediante el comando

Código PHP:
    $mail->ClearAddresses(); 
De esta manera por cada correo que envies se te va a "limpiar" la info. (te aconsejo que pruebes con una red local).

Espero haber sido de utilidad.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #3 (permalink)  
Antiguo 27/04/2011, 13:42
 
Fecha de Ingreso: enero-2006
Mensajes: 199
Antigüedad: 18 años, 3 meses
Puntos: 5
Respuesta: grave error con phpmailer

gracias! mas tarde pruebo

Etiquetas: phpmailer
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 02:04.