Foros del Web » Programando para Internet » PHP »

phpmailer envia los mails duplicados

Estas en el tema de phpmailer envia los mails duplicados en el foro de PHP en Foros del Web. Hola a todos! Vereis tengo una base de datos con todos los mails. Y por otro lado tengo el codigo php que me envia una ...
  #1 (permalink)  
Antiguo 04/03/2009, 05:57
 
Fecha de Ingreso: marzo-2007
Mensajes: 83
Antigüedad: 17 años, 1 mes
Puntos: 0
phpmailer envia los mails duplicados

Hola a todos! Vereis tengo una base de datos con todos los mails. Y por otro lado tengo el codigo php que me envia una correo a todos los usuarios de a base de datos.

El codigo funciona bien, solo falla una cosa. Ahora mismo tengo 3 usuarios en la base de datos para hacer pruebas. Pues bien, mi funcion envia el correo 3 veces. Es decir, los envia de este modo:

email1
email1,email2
email1,email2,email3

Con lo que el primer correo recibe el mail 3 veces, el segundo 2 y asi sucesivamente...

Este es mi codigo:


<?

$result = mysql_query("SELECT * FROM mails",$link);
if (mysql_num_rows($result)!=0){
require "includes/class.phpmailer.php";
$mail = new phpmailer();
$mail->PluginDir = "includes/";
$mail->Mailer = "smtp";
$mail->Host = "smtp.midominio.com";
$mail->SMTPAuth = true;
$mail->Username = "[email protected]";
$mail->Password = "pass";
$mail->From = "[email protected]";
$mail->FromName = "Boletin";
while ($row = @mysql_fetch_array($result)) {
$email=$row["mail"];


$mail->AddAddress($email);
$mail->Subject = "Prueba de phpmailer";
$mail->Body = "<b>Mensaje de prueba mandado con phpmailer en formato html</b>";
$mail->AltBody = "Mensaje de prueba mandado con phpmailer en formato solo texto";
$exito = $mail->Send();

}
}
else{
echo "<center><span class='style4'>No se ha podido enviar la newsletter</span></center>";
}
mysql_close($link);

?>


Hay alguna otra manera de enviar el correo a todos los usuarios? Alguien puede ayudarme?

Gracias a todos
  #2 (permalink)  
Antiguo 04/03/2009, 07:29
 
Fecha de Ingreso: mayo-2005
Mensajes: 188
Antigüedad: 18 años, 11 meses
Puntos: 6
Respuesta: phpmailer envia los mails duplicados

El problema lo tienes en el while(). El método AddAddress() de PHPMailer "añade" la dirección indicada a la lista de direcciones.

Prueba creando el objeto $mail dentro del while, o buscar algún método tipo resetAddress(), removeAddress(), deleteAddress(), o algo así, para limpiar la lista de direcciones antes de hacer el AddAddress.
  #3 (permalink)  
Antiguo 04/03/2009, 08:00
 
Fecha de Ingreso: marzo-2007
Mensajes: 83
Antigüedad: 17 años, 1 mes
Puntos: 0
Respuesta: phpmailer envia los mails duplicados

Gracias por tu respuesta. Lo probaré!
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 11:09.