Foros del Web » Programando para Internet » PHP »

Envio de emails con varios destinatarios

Estas en el tema de Envio de emails con varios destinatarios en el foro de PHP en Foros del Web. Bueno lo que intento hacer es que el mensaje que los usuarios de mi sitio envien por medio de un formulario llegue a 3 distintos ...
  #1 (permalink)  
Antiguo 16/06/2005, 21:49
Avatar de rigtersir  
Fecha de Ingreso: enero-2004
Ubicación: Mexico City
Mensajes: 28
Antigüedad: 20 años, 3 meses
Puntos: 0
Pregunta Envio de emails con varios destinatarios

Bueno lo que intento hacer es que el mensaje que los usuarios de mi sitio envien por medio de un formulario llegue a 3 distintos destinatarios, intente agregando
Cita:
$destino1 = "[email protected]", $destino2 = "[email protected]", $destino3 = "[email protected]"
y en esta linea
Cita:
mail("$destino1", "$destino2","$destino3","$asunto", "$msg", "FROM: $email");
agregue $destino1, $destino2, $destino3 pero al probarlo me decia que habia un error, asi que despues de varios intentos fallidos decidi acudir a ustedes para que me ayuden a resolver este problema

Código PHP:
<?php
$destino 
"[email protected]";
$sw "http://www.rigter.tk";
$msg "$nombre, envio el formulario de contacto con los siguientes datos:\n\n\n

  Nombre: $nombre
   Email: $email
     Web: $web
    Pais: $pais
  Asunto: $asunto
 Mensaje: $mensaje\n\n"
;

if (empty(
$nombre)){
echo 
"<p align=center><font face=tahoma size=1><font color=#990000>Error:</font> No ingresaste tu Nombre.</font></p>";
}
if(empty(
$email)){
echo 
"<br><p align=center><font face=tahoma size=1><font color=#990000>Error:</font> No ingresaste tu E-mail.</font></p>";
}
if(empty(
$pais)){
echo 
"<br><p align=center><font face=tahoma size=1><font color=#990000>Error:</font> No ingresaste tu Pais.</font></p>";
}
if(empty(
$asunto)){
echo 
"<br><p align=center><font face=tahoma size=1><font color=#990000>Error:</font> No seleccionaste un Asunto.</font></p>";

if(empty(
$mensaje)){
echo 
"<br><p align=center><font face=tahoma size=1><font color=#990000> Error:</font> No ingresaste el Mensaje.</font></p><br>";
}else{

$mensaje ereg_replace("\r\n","<br>"$mensaje);

$nombre htmlentities($nombre);
$email htmlentities($email);
$pais htmlentities($pais);
$mensaje htmlentities($mensaje);

mail("$destino""$asunto""$msg""FROM: $email");

echo
"<font face=tahoma size=1>
<p align=center>Gracias <font face=tahoma size=1><font color=#990000><b>$nombre</b></font>
<br>Respondere a tu mensaje en un plazo de 24 horas.</p>"
;
}
?>
__________________
° Rigter °
Portfolio & Blog
http://www.rigtersir.com
  #2 (permalink)  
Antiguo 16/06/2005, 23:34
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
Cita:
Iniciado por rigtersir
(...) intente agregando y en esta linea agregue $destino1, $destino2, $destino3 pero al probarlo me decia que habia un error (...)
... si ves.. a una función tu le pasas parámetros, en algunos casos obcionales en otros obligatorios, eso depende de cada función... Pués mail() no es la escepción y necesita de ciertos parámetros y en cierto órden... vayamos a la documentación oficial: www.php.net/function.mail

Dice:
Cita:
bool mail ( string para, string asunto, string mensaje [, string cabeceras_adicionales [, string parametros_adicionales]] )
ahí te está indicando qué parámetros necesita recibir, en qué órden y de qué tipo serán....

Vemos que primero hay un parámetro "para" que ha de ser del tipo cadena... posteriormente un "asunto" igual cadena y le sigue un "mensaje".. sobre decr es cadena... le siguen "cabeceras" y "parametros_adicionales"... pero verás que están entre corcheets... cuando, en programación, algo está entre corchetes ([ ]) quiere decir que esos parámetros son opcionales... así pués, pueden faltarte estos pero los tres anteriores son obligatorios en orden y tipo...

Solo como aclaración, todo eso lo explican en la misma documentación:
Cita:
especificado en mensaje al recipiente especificado en para
si te daz cuenta hacen referencia a los parámetros... pero sigamos...

Cada qe pones comas (,) que no estén dentro de la cadena, estás pasando un parámetro, así lo va a entender la función; mail("para", "asunto", "mensaje"). Tu error es ese... ve que a tí te tomaria $destino1 como si fuera "para", $destino2 como asunto, $destino3 como mensaje... y al querer añadir los demás parámetros estás pasando una cantidad que no reconoce la función; solo aceptaría hasta 5, tu pasas... 6?.

Con esto ya se debes intuir la solución... pero sigamos leyendo en la documentación:
Cita:
Es posible especificar múltiples recipientes colocando una coma entre cada dirección en la cadena para.
Voalá!!!... Veamos el ejemplo que ahí viene:
Código PHP:
<?php
/* recipientes */
$para  "[email protected]", " // fijese en la comma
$para .= "[email protected]";
// ACORTO EL EJEMPLO... 
/* y ahora, enviarlo */
mail($para$asunto$mensaje$cabeceras);
?>
... ve que "construyó" una sola variable $para como se mencionó en el texto.. ...

... Bueno... más que darte solución intenté hacerte una breve explicación del por qué y del cómo... y demostrar que la documentación oficial es a lo primero que abria que recurrir (un STFM dirían unos --lee el enace de mi firma si no entiendes esto--), además de las FAQ... pero bueno, no es queja ni nada .. es solo un orientar (a todos en egeneral) a el cómo debe interpretada dicha documentación (a algunos nos parecerá extraño su lenguaje)...

Pero bueno... esperando te haya servido... creo fue más productivo decir eso a decirte:
Usa esto:
Código PHP:
ó puedes hacer esto:
Código PHP:
 $destino1 "[email protected]"
$destino2 "[email protected]";
$destino3 "[email protected]";
$para"$destino1, $destino2, $destino3";
mail($para, ....); 
ó esto:
Código PHP:
 $destino"[email protected],"
$destino.= "[email protected],";
$destino.= "[email protected]"// que es algo como muestra la documentación
mail($destino, ....); 
ó cualquier variante... igual hay que decir en lo que tenías un error aún de más cuidad... pués es básico... ponias comas (,) entre sentencias... y eso no debe ser, cada sentencia finaliza con un punto y coma (;)... pero bueno... lo verás en www.php.net

Suerte!
PD: cité tu texto para decirte que cuando tengas problemas... menciones exáctamente qué errores son los que tienes...
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"

Última edición por jam1138; 16/06/2005 a las 23:41
  #3 (permalink)  
Antiguo 17/06/2005, 00:13
Avatar de rigtersir  
Fecha de Ingreso: enero-2004
Ubicación: Mexico City
Mensajes: 28
Antigüedad: 20 años, 3 meses
Puntos: 0
Gracias!!

Gracias jam1138 me haz sacado de mi problema, perdon por no especificar bien el error que me habia dado el script pero con las prisas se me paso. Bueno te agradezco tu rapida respuesta

Adios
__________________
° Rigter °
Portfolio & Blog
http://www.rigtersir.com
  #4 (permalink)  
Antiguo 17/06/2005, 00:17
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 19 años, 8 meses
Puntos: 102
.. pués de saber que me agradecerías la respuesta por rápida.... en dos líneas hubiese respondido... ... ... bromero pero sí espero hayas leido y entendido todo lo qe dije...

Saludos!
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
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 09:14.