Foros del Web » Programando para Internet » PHP »

enviar a varios correos

Estas en el tema de enviar a varios correos en el foro de PHP en Foros del Web. Hola, tengo un form que envía a varios correos dependiendo de un select: Código PHP: $correos = array( 0  =>  "" ,  1  =>  "[email protected][email protected]" ,  ...
  #1 (permalink)  
Antiguo 07/06/2005, 15:10
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 12 años, 9 meses
Puntos: 0
enviar a varios correos

Hola, tengo un form que envía a varios correos dependiendo de un select:

Código PHP:
$correos= array(=> ""=> "[email protected][email protected]"=> "[email protected][email protected]etc...);

$to_email=$correos[$_POST['temas']];
    
mail($to_email$asunto$cuerpo$headers$mfinal); 
Todo bien, pero quiero reducir un poco la información, ya que varios de los correos necesariamente deben de repetirse y me gustaría reducir esos bytes. Así por ejemplo que en lugar de poner el correo completo varias veces, solo poner una variable (mail1, mail2 etc.)

Aunque no sé bien cómo hacerle

Gracias
  #2 (permalink)  
Antiguo 08/06/2005, 04:49
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... osease que quieres hacer un $to_email="[email protected], [email protected]";???... ... pués hazlo!

La verdad es que me quedó poco clara tu consulta... pero te aconsejo leas la documentación oficial: www.php.net/manual/es/function.mail.php

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

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 08/06/2005, 09:40
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 12 años, 9 meses
Puntos: 0
Lo que deseo hacer no es un $to_email="[email protected],...
Eso ya está, lo que quiero es simplificar correos ya que varios se repiten 3 o 4 veces. Lo que no sé es como simplificar eso.

Pongo el código completo para que sea más claro.

Código PHP:
<?php
//variables de los temas
if ($_POST['temas']=='1'){
$tema 'Diplomados';
}
if (
$_POST['temas']=='2'){
$tema 'Maestría en Psicología Holokinética';
}
if (
$_POST['temas']=='3'){
$tema 'Material audiovisual y libros';
}
if (
$_POST['temas']=='4'){
$tema 'Organización de talleres';
}
if (
$_POST['temas']=='5'){
$tema 'Reuniones para el diálogo';
}
if (
$_POST['temas']=='6'){
$tema 'Escriba a RFG';
}
if (
$_POST['temas']=='7'){
$tema 'Otro tema';
}
//si no se reciben datos del formulario detener
if (($nombre == "") OR ($email == "")) {
echo 
"<h3>No has introducido todos tus datos, favor de verificarlos.</h3><a href=\"contacto.html\">volver</a>";
}

else if(isset(
$_POST['email'])){
    
    
$asunto "Correo desde el sitio";
    
$time date("l d of F Y h:i:s A"); 
    
$headers "MIME-Version: 1.0\n" ;
    
$headers .= "Content-type: text/html; charset=iso-8859-1\n";
    
$headers .= "From: $email\n";
    
$headers .= "Reply-To: $email\n";

    
$cuerpo="Se ha llenado el formulario y estos son los datos proporcionados:<br /><br />";
    
$cuerpo.="Fecha de envío:<br /><b>$time</b><br /><br />";
    
$cuerpo.="Nombre:<br /><b>$nombre</b><br /><br />";
    
$cuerpo.="Email:<br /><b>$email</b><br /><br />";
    
$cuerpo.="Residencia:<br /><b>$residencia</b><br /><br />";
    
$cuerpo.="Tema sobre el que desea información:<br /><b>$tema</b><br /><br />";
    
$cuerpo.="Comentarios:<br /><b>$comentarios</b><br /><br />";
    
$cuerpo.="IP del visitante:<br /><b>$REMOTE_ADDR</b><br /><br />";
// envío a la cuenta del contactador
    
$headers2 .= "From: [email protected]\n";
    
$headers2 .= "MIME-Version: 1.0\n" ;
    
$headers2 .= "Content-type: text/html; charset=iso-8859-1\n";
    
$headers2 .= "Reply-To: [email protected]\n";
    
$sub2 .="Información sobre el sitio";
    
$message2 .= "
    <html><head></head><body> 
    <p>Gracias por su correo <b>$nombre</b> solicitando información sobre <b>$tema</b>.
    <br />
    Responderemos a la brevedad su solicitud proporcinándole la información que requiere.</p>
    <p>Saludos.</p>
    <br />
    <p><b>$nombre</b> escribió:
    <br />
    $comentarios</p>
    "
;

$correos= array(=> ""=> "[email protected][email protected]"=> "[email protected][email protected]"=> "[email protected][email protected]"=> "[email protected][email protected][email protected]"=> "[email protected][email protected][email protected]"=> "[email protected]"=> "[email protected][email protected][email protected]");

    
// envia el email
    
$to_email=$correos[$_POST['temas']];
    
    
mail($to_email$asunto$cuerpo$headers$mfinal); 
    
mail($email$sub2$message2$headers2);

    echo 
"<h3>Su formulario <em>$nombre</em> ha sido enviado correctamente. Gracias.</h3>";
}
?>
Lo quiero simplificar porque los temas son varios y se repiten muchas veces los correos, principalmente para que el archivo no pese tanto ya que todavía tiene más código.
  #4 (permalink)  
Antiguo 08/06/2005, 09:43
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 12 años, 8 meses
Puntos: 17
array_unique -- Remueve valores duplicados de una matriz

más info en http://ar2.php.net/manual/es/function.array-unique.php


(lo dicho: PHP tiene funciones para todo)
  #5 (permalink)  
Antiguo 08/06/2005, 12:23
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 12 años, 9 meses
Puntos: 0
Gracias por la respuesta, pero tampoco eso me funciona.
He resuelto la cosa haciendo una variable para cada correo y metiendo esa variable en lugar de las direcciones de correo en el array.

Código PHP:
$c1 correo1@servidor.com;
$c2 correo2@servidor.com;
$c3 correo3@servidor.cometc.

$correos= array(=> ""=> "$c1, $c2"=> "$c1, $c3" => "$c2, $c3"); 
Si alguien conoce una forma más adecuada de hacer lo anterior se lo agradeceré mucho.
  #6 (permalink)  
Antiguo 09/06/2005, 00:13
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 13 años, 4 meses
Puntos: 101
... pués la verdad es que no se entiende la situación... ¿por qué "necesariamente" han de repetirse los correos??...

Como sea.. lo que haces parace que es lo mismo a lo que tenías antes (diferente presentación, pero en escencia es lo mismo...).

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

"100 años después, la revolución no es con armas, es intelectual y digital"
  #7 (permalink)  
Antiguo 09/06/2005, 09:45
 
Fecha de Ingreso: febrero-2005
Mensajes: 135
Antigüedad: 12 años, 9 meses
Puntos: 0
OK los correos se deben de repetir porque estan vinculados a un formulario con una lista de seleccion. Así pues, si de esa lista escojo la "opción 1" entonces el formulario se manda a "persona 1" y "persona 2". Si elijo la "opción 2" el correo se manda a "persona 1" y "persona 3" etc. Es necesario que los correos se repitan porque la información del formulario le interesa a distintas personas y algunas se repiten. Así por ejemplo si en la empresa alguien entra al contacto y desea tener información de ventas, el correo le llega a la persona encargada de ventas y a la persona encargada de relaciones, etc.

Queda un poco más claro?
  #8 (permalink)  
Antiguo 09/06/2005, 12:30
 
Fecha de Ingreso: mayo-2005
Mensajes: 201
Antigüedad: 12 años, 6 meses
Puntos: 2
Cita:
Iniciado por yconoclasta
OK los correos se deben de repetir porque estan vinculados a un formulario con una lista de seleccion. Así pues, si de esa lista escojo la "opción 1" entonces el formulario se manda a "persona 1" y "persona 2". Si elijo la "opción 2" el correo se manda a "persona 1" y "persona 3" etc. Es necesario que los correos se repitan porque la información del formulario le interesa a distintas personas y algunas se repiten. Así por ejemplo si en la empresa alguien entra al contacto y desea tener información de ventas, el correo le llega a la persona encargada de ventas y a la persona encargada de relaciones, etc.

Queda un poco más claro?
Una forma sencilla es crear un alias en tu servidor de correo, por ejemplo como en tu caso tu quieres informacion de ventas pero tambien debe de recivir el correo el encargado de relaciones, pues genera un alias para que el mismo servidor de correo envie a las dos cuentas involucradas la misma informacion, es mas sencillo y quitas complejidad al script.
Si estas en un servidor de pago debes de poder hacer alias de tu dominio a una o mas cuentas, atravez del panel de control que te proporcionen.

Saludos!.
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 22:03.