Foros del Web » Programando para Internet » PHP »

Ayuda con funcion mail()

Estas en el tema de Ayuda con funcion mail() en el foro de PHP en Foros del Web. Buenas, tengo una duda. tengo un formulario y lo quiero enviar de una vez, a dos personas a la vez. hago un swicth, y segun ...
  #1 (permalink)  
Antiguo 10/10/2005, 12:28
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
Ayuda con funcion mail()

Buenas, tengo una duda. tengo un formulario y lo quiero enviar de una vez, a dos personas a la vez. hago un swicth, y segun la variable envio a unas direcciones u otras:

Código:
switch ($conocer) {
	case 'ABR':
		$para ="[email protected],[email protected]";
		break;
		case 'BEG':
		$para="[email protected]";
		break;
		}
y luego hago un

if ($mail = mail($para,$asunto,$mensaje,$headers)){
codigo...

la cosa es que me lo envia perfectamente, pero solo a una de las dos direcciones. también he probado con
$para=.....
$para.=

pero entonces me da error. como puedo hacerlo para enviar dos mails a la vez? en el outlook express con ";" se manda perfectamente.

gracias!
  #2 (permalink)  
Antiguo 10/10/2005, 13:28
Avatar de yo12345  
Fecha de Ingreso: mayo-2005
Mensajes: 11
Antigüedad: 12 años, 7 meses
Puntos: 1
Código PHP:
//una de las dos cosas las tendrias que añadir  a tu headers
//Mail que recibira una copia 
$headers .= "Cc: [email protected]\r\n";

//Mail que recibira una copia ocultas
$headers .= "Bcc: [email protected],[email protected]\r\n"
Si eso no te convece podrias hacer un bucle que se ejecute dos veces y te manda el mail cada vez , esto suele ser tipico pa cuando mandas muchos mails a la vez y quieres personalizarlos.
Espero haberte ayudado
  #3 (permalink)  
Antiguo 13/10/2005, 04:48
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
gracias yo12345. el problema es que quiero enviar segun el valor de la variable en el switch, es decir, necesito hacer un envio a 2 personas a la vez. pero no puedo ponerlo en el header, tengo q especificar las dos direcciones en el mismo para.

por eso te comentaba que habia probado $para, y $para. pq pensaba que me añadiria las dos. pero no lo hace.

salu2
  #4 (permalink)  
Antiguo 13/10/2005, 04:54
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 2 meses
Puntos: 0
soy yo12345 pero con un nuevo usuario,
y porque no haces algo como esto
Código PHP:
switch ($conocer) {
    case 
'ABR':
        
$para ="[email protected]"
                
$headers.= "Cc: [email protected]\r\n"//Aqui le mandas una copia al otro mail
        
break;
    case 
'BEG':
        
$para="[email protected]";
        break;
    }
mail($para,$asunto,$mensaje,$headers); 
  #5 (permalink)  
Antiguo 13/10/2005, 05:32
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
gracias indio, ahora mismo lo pruebo y te comento. hasta ahora!
  #6 (permalink)  
Antiguo 13/10/2005, 05:43
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
te comento lo q me ha pasado. te pongo el headers q tengo yo puesto:

//cabeceras para el envio del mail en html y dire de quien lo envia
$headers = "MIME-Version: 1.0\r\n";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: $email";

ahora lo del switch q tu me bhas dicho

switch ($conocer) {
case 'ABR':
$para ="[email protected]";
$headers.= "Cc: [email protected]\r\n"; //Aqui le mandas una copia al otro mail
break;

//Cabeceras Respuesta Automática
$headers1 = "MIME-Version: 1.0\r\n";
$headers1 = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers1 .= "From: [email protected]";
$para1 = "$email";
$asunto1 = "Respuesta automática inmofree.com";
$mensaje1 =

y lo que hago luego es:

if ($mail = mail($para,$asunto,$mensaje,$headers)){
//si el formulario se envía con éxito, PHP lanzará una variable de control con la palabra "enviado".
$variableControl = "enviado";
$mail2 = mail($para1,$asunto1,$mensaje1,$headers1);}

asi, el que ha enviado el mail recibe una copia. eso funciona perfectamente. pero ahora,poniendo lo que tu me has dicho, recibo el mail en ferran, y me pone lo de (mail enviado) y el de la otra persona, pero no llega a los 2 mails.

entiendes algo?

salu2
  #7 (permalink)  
Antiguo 13/10/2005, 06:58
 
Fecha de Ingreso: octubre-2005
Mensajes: 33
Antigüedad: 12 años, 2 meses
Puntos: 0
mmm, vale pues entonces vamos a probar otra cosa, mediante un array
Código PHP:
switch ($conocer) {
    case 
'ABR':
        
$para[0] ="[email protected]";
         
$para[1]=[email protected]";
        break;
    case 
'BEG':
        
$para[0]="[email protected]";
        break;
    }
foreach (
$para as $key=>$valor)   
 
mail($valor,$asunto,$mensaje,$headers); 
Esto te llamara tantas veces a la funcion mail como tamaño tenga vector para
Creo que con esto ya te tiene que funcionar
__________________
Go jakuko!
  #8 (permalink)  
Antiguo 13/10/2005, 09:04
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
buenas indio, no se si estará bien escrito lo q has puesto, pero me da error. tengo siguiente:

switch ($conocer) {
$para[0] ="[email protected]";
$para[1]=" [email protected]";
break;
foreach ($para as $key=>$valor);
}

y luego el envio


if ($mail = mail($valor,$asunto,$mensaje,$headers)){

y me da error... esta bien la funcion del foreach?

salu2
  #9 (permalink)  
Antiguo 13/10/2005, 09:21
 
Fecha de Ingreso: enero-2002
Mensajes: 1.872
Antigüedad: 15 años, 11 meses
Puntos: 3
problema resuelto indio!! habia puesto un ; al final de la funcion foreach, y no lleva nada.

muchisimas gracias!!

salu2
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:03.