Foros del Web » Programando para Internet » PHP »

envio con phpmailer a varios correos.

Estas en el tema de envio con phpmailer a varios correos. en el foro de PHP en Foros del Web. Hola a todos. Tengo este trozo de código que envia un formulario recojido en la web a varios destinatarios. Lo hace correctamente, pero al recibir ...
  #1 (permalink)  
Antiguo 06/06/2012, 09:00
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
envio con phpmailer a varios correos.

Hola a todos.
Tengo este trozo de código que envia un formulario recojido en la web a varios destinatarios.
Lo hace correctamente, pero al recibir el mail en el correo, duplica la lista de dichos destinatarios.

En lugar de :
para: destinatari <correo1@correo1>,destinatari <correo2@correo2>,destinatari <correo3@correo3>

me aparece
para: destinatari <correo1@correo1>,destinatari <correo2@correo2>,destinatari <correo3@correo3>,destinatari <correo1@correo1>,destinatari <correo2@correo2>,destinatari <correo3@correo3>

Antes de empezar a destripar phpmailer, quiero pensar que estoy cometiendo algun error.


Código PHP:
    .......bla bla....
    
//array ejemplo
    
$destinatari[0]="[email protected]";
    
$destinatari[1]="[email protected]";
    
$destinatari[2]="[email protected]";

    require 
"prg/class.phpmailer.php";
    
$mail = new phpmailer();
    
$mail->Mailer=$pclsForm->mailer;
    
$mail->Host=$pclsForm->host;
    
$mail->SMTPAuth=$pclsForm->smptaut;
    
$mail->Username=$pclsForm->username;
    
$mail->Password=$pclsForm->password;
    
$mail->From=$remitent;
    foreach(
$destinatari as $adre){
        
$mail->AddAddress($adre,"destinatari");
    }
    
$mail->Subject=$asunto;
    
$mail->IsHTML(true);
    
$mail->Body=$missatge;
    IF(
is_array($_FILES)){
        foreach(
$_FILES as $fitxer=>$prop){
            
$mail->AddAttachment($prop["tmp_name"], $prop["name"]);
            
$fil=1;
        }
    }

    
$envio=$mail->Send();
    ....
bla bla bla...... 
Gracias por vuestra atención.
  #2 (permalink)  
Antiguo 06/06/2012, 11:50
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: envio con phpmailer a varios correos.

hace el print_r de $destinatari para limitar las posibilidades y descartar que tengas dubplicados ahi. Porque no probas poniendo unicamente el primer mail usando AddAdress() y los demas hacelos AddCC() o como sea en el phpmailer()?
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #3 (permalink)  
Antiguo 06/06/2012, 12:08
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: envio con phpmailer a varios correos.

Hola linuxaero. Gracias por tu respuesta.
Duplicados seguro que no, ya que uso nusphere y veo (en debug) como van las variables.

AddCC() existe en phpmailer, pero me gustaria no enviar como copia. Lo dejaré como último recurso.
En la red hay un monton de ejemplos que lo hacen como yo.(De echo, es al revés...)

Saludos!
  #4 (permalink)  
Antiguo 06/06/2012, 12:57
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: envio con phpmailer a varios correos.

proba de usar esto en cada bucle, despues del AddAdress()

Código PHP:
Ver original
  1. $mail->ClearAddresses();
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #5 (permalink)  
Antiguo 06/06/2012, 13:55
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: envio con phpmailer a varios correos.

$mail->ClearAddresses();

Esto me servira si el mail->Send() estuviera dentro del bucle, y seguramente sí funcionaria, ya que addAdress crea el array $mail->To y ClearAdress, lo elimina. Muchas respuestas en la red dan esta solución.

Mi duda es:entonces, para que mail->AddAdress monta un array? Es que además, funciona, con un solo send(), pero con el fallo que os comenté.

Gracias de nuevo.
  #6 (permalink)  
Antiguo 06/06/2012, 13:59
Avatar de linuxzero  
Fecha de Ingreso: noviembre-2011
Ubicación: Argentina
Mensajes: 778
Antigüedad: 12 años, 5 meses
Puntos: 160
Respuesta: envio con phpmailer a varios correos.

Capaz es un bug de la clase, probaste con otro como el swift mail? yo lo utilice para symfony y va como trompada
__________________
Si todo fuera tan sencillo como un symfony cc la vida seria más fácil.
http://phpnico.wordpress.com
  #7 (permalink)  
Antiguo 06/06/2012, 15:17
Avatar de oscartt67  
Fecha de Ingreso: abril-2012
Ubicación: fonollosa
Mensajes: 481
Antigüedad: 12 años
Puntos: 97
Respuesta: envio con phpmailer a varios correos.

Voy a comprobar que tenga la última versión por si fuera un bug corregido. Investigaré un poco la clases. Si no encuentro solioción, probaré el swift mail que me recomiendas.

Muchas gracais por tus respuestas.

Etiquetas: formulario, html, 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 18:53.