Comunidad de diseño web y desarrollo en internet online

envio a múltiple destinatarios con PHPMailer

Citar            
MensajeEscrito el 29 Nov 2011 07:26 pm
Ante todo muy buenos dias a todo la gente que forma parte de este magnifico foro.
Mi problema nace a partir de querer enviar a multiples destinatarios con PHPMailer a traves de AddBCC. Quizas aparente ser una conosulta boba pero la verdad que he estado buscando info por la web y no he podido dar en la tecla.

Ante todo muchas graciasi a quien pueda sacarme de este enrredado problema. :( :oops:

Por tvzbien

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Nov 2011 10:12 pm
Aqui hay un ejemplo de como usar la clase
PHPMailer

Por danmoracr

Claber

128 de clabLevel

1 tutorial

Genero:Masculino  

Web application developer

firefox
Citar            
MensajeEscrito el 02 Dic 2011 01:08 pm
danmoracr muchas gracias por tu respuesta y mil disculpas por la demora de mis comentarios pero he estado con problemas. He consultado el articulo brindado, que a decir verdad ya lo había visto antes, y no me resulto de ayuda. Mis destinatarios no los ingreso a traves de una consulta a base de datos, lo quiero mas simple, es decir ingresando los destinatarios manualmente tipo hotmail separados o por comas o punto y coma. He probado con explode, foreach y nada.

Aqui dejo el link con la captura de pantalla del sistema de envio de mail:

http://i40.tinypic.com/2195kex.jpg

Por tvzbien

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Dic 2011 02:42 pm
Pon la parte del código fuente relevante al problema, pero SOLO la parte relevante.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 02 Dic 2011 08:04 pm
Estimado DriverOp aqui apunto la porción del codigo

archivo enviar_mail.php

Código PHP :

//Indicamos cual es la dirección de destino del correo
  $mail->AddAddress($_POST['para']);
  foreach($_POST['cco'] as $destinatarios){
  //$destinatarios = implode("','",$_POST['cco']);  
 $mail->AddBCC($destinatarios);  
}


esta es la funcion del archivo class.phpmailer.php del PHPMAILER a la que hace referencia mi archivo enviar_mail.php

Código PHP :

 function AddCC($address, $name = "") {
        $cur = count($this->cc);
        $this->cc[$cur][0] = trim($address);
        $this->cc[$cur][1] = $name;
    }



y este es el error que me devuelve cuando intento mandar a mas de un destinatario el mail con la funcion AddBCC

Código PHP :

SMTP Error: The following recipients failed [Array, [email protected],[email protected]]


Probé con implode tal como está comentado en el codigo y tampoco, seguro que algo estoy haciendo mal y no puedo abrir mi cabeza para detectar el error. Con la funcion AddAddress poniendo un solo mail de destino funciona perfecto pero con mas de uno no funciona, entonces intente con la funcion AddBCC agregando un campo de texto mas en el form que se llama "cco" y haciendo un foreach para tomar todos los mail de destino que se pongan manualmente y tampoco hubo caso.

Por tvzbien

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 02 Dic 2011 09:57 pm
Ahí se ve que el problema es que el primer elemento que ingresa es un array, más bien porque no pruebas en el foreach

Código :

foreach($_POST['cco'] as $destinatarios)
$destinatarios .= $_POST[cco].",";


¡Cuéntanos a ver que tal te fue!

Por ElSiniestro

Claber

285 de clabLevel


1 articulo

Genero:Masculino  

Alguien que Ayuda

chrome
Citar            
MensajeEscrito el 03 Dic 2011 12:30 am
tvzbien:
$_POST['cco'] es realmente un array?. Prueba mostrando esa variable con print_r() o var_dump(). Me late que no es un array.

Por DriverOp

Claber

2510 de clabLevel



 

opera
Citar            
MensajeEscrito el 07 Dic 2011 02:35 pm
Estimado DriverOp claro, te late bien jaja! por que no es un array el objeto cco enviado por post ($_POST['cco']) es texto plano donde el usuario deberia de ingresar los correos de los destinatarios separados por ej con coma punto y coma espacio o como sea.
A todos aqui dejo el link con la captura de pantalla del sistema de envio de mail como para que se entienda mejor:

http://i40.tinypic.com/2195kex.jpg

PD: ElSiniestro tu sugerencia la probé y no me funcionó, justamente por este tema de que el objeto no es un array creeria yo.

Por fa ayuda estoy desde hace días con este rollo, de antemano gracias a todos los que se toman su tiempo para mejorar cada vez mas este maravilloso foro y para hablandarle la cabeza a novatos como yo.

Por tvzbien

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Dic 2011 03:18 pm
Bueno, creo que necesitamos más que palabras (jejejeje)

Mira, debes decirnos que datos entran a la variable $_POST['cco'] (me refiero a cómo andan separados), para eso aplícale otras funciones (ahí entra lo que te dicen de vardump) para ver de que manera te lo envía la página

Por ElSiniestro

Claber

285 de clabLevel


1 articulo

Genero:Masculino  

Alguien que Ayuda

chrome
Citar            
MensajeEscrito el 07 Dic 2011 08:26 pm
Amigo como comenté atenriormente esto está hecho con PHPMailer y para enviar los mail se usan sus respectivas funciones que estan contenidas dentro del arhivo class.phpmailer.php. Estas funciones son

Código PHP :

 function AddCC($address, $name = "") {
        $cur = count($this->cc);
        $this->cc[$cur][0] = trim($address);
        $this->cc[$cur][1] = $name;
    } 


que es la que funciona con el campo del formulario "para" (esta funciona perfectamente cuando envío a un solo destinatario)

y la otra funcion seria

Código PHP :

 
function AddAddress($address, $name = "") {
        $cur = count($this->to);
        $this->to[$cur][0] = trim($address);
        $this->to[$cur][1] = $name;
    } 


que es la que deberia de funcionar con el campo del formulario "cco"

y aqui pongo de nuevo el codigo relevante del archivo enviar_mail.php

Código PHP :

//Indicamos cual es la dirección de destino del correo
  $mail->AddAddress($_POST['para']);
  $correos =  $_POST['cco'];
  $correos_array = preg_split("/[\s;]+/", $correos);
  foreach($correos_array as $key=>$value){
  $mail->AddBCC($value);
  }


aclaro que la variable $_POST['para'] recoge los datos ingresados en el formulario (datos que serian las direcciones de correo de los destinatarios) y lo mismo para la variable $_POST['cco'] que aqui es donde quiero poner multiples direcciones de correo separadas por punto y coma y que me envie el mail.

este es el formulario que esta dentro del mismo arhivo enviar_mail.php



espero haber sido claro y haber podido explicarme.

Por tvzbien

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 07 Dic 2011 08:30 pm
ahi como podran ver al codigo del arhivo enviar_mail.php lo modifique pero sigue sin poder enviar el mail a multiples destinatarios

Por tvzbien

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 21 Mar 2014 05:03 pm
mire compadre esta sencillo eso ponle asi:

$cco=$_POST["cco"];
$cco =explode(",",$cco)//el input separado por coma, esto te conviete el input de cco en array separado por coma de tal manera que si en el input escribiste [email protected], [email protected]; $cco[0] va a ser equivalente al primer correo y $cco[1] es equivalente al segundo correo.
foreach($cco as $cco=>$valor){
$mail->AddBCC(trim($valor));
}//el foreach rebisa cada valor del array o si no quieres usar este puedes hacer esto

$longitud=count($cco);
for($i=0;$i<$longitud;$i++){
$mail->AddBCC($cco[$i]);
}

//y ya despues marcas el send

Por noex29

0 de clabLevel



 

chrome
Citar            
MensajeEscrito el 21 Mar 2014 08:50 pm
[OFFTOPIC]

el borrar en esa lista debe ser ROJO, aqui y haya el color ROJO indica peligro, algo que debe atenderse y ponerle mucha atención.

Por elporfirio

Claber

652 de clabLevel

1 tutorial

Genero:Masculino  

FullStack Web Developer

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.