Foros del Web » Programando para Internet » PHP »

Enviar email masivo (seleccionando con checkbox)

Estas en el tema de Enviar email masivo (seleccionando con checkbox) en el foro de PHP en Foros del Web. hola a todos tengo una consulta la cual me muestra todos los registros tengo también un formulario donde se visualizan los datos Código PHP:   ...
  #1 (permalink)  
Antiguo 02/05/2013, 11:17
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Enviar email masivo (seleccionando con checkbox)

hola a todos tengo una consulta la cual me muestra todos los registros
tengo también un formulario donde se visualizan los datos
Código PHP:
 <?php do { ?>
<?php 
echo $row['Nombre']; ?>
<?php 
echo $row['ApellidoPaterno']; ?>
<?php 
echo $row['ApellidoMaterno']; ?>
<input name="email[]" value="<? echo $row['id'];?>" type="checkbox" />

    <?php } while ($rowmysql_fetch_assoc($row)); ?>

Bien hasta aca no tengo problemas...
lo que intentio hacer es enviar un email a todos (siempre y cuando esten seleccionados por el checkbox)

tengo el codigo para enviar un mensaje individual
Código PHP:
<?php
$aviso 
"";
// check form  
if ($_POST['email'] != "") {
    
// email de destino
    
$email $_POST[email2];
    
    
// asunto del email
    
$subject $_POST[nombre2];
    
    
// Cuerpo del mensaje

    
$mensaje.= "Alumno:   ".$_POST['nombre']."\n";
    

    
    
    
$mensaje.= "---------------------------------- \n\n";
    
$mensaje.= $_POST['mensaje']."\n\n";

    
    
// headers del email
    
$headers "From: ".$_POST['email']."\r\n";
    
    
// Enviamos el mensaje
    
if (mail($email$subject$mensaje$headers)) {
        
$aviso "Menu.php";
        
header("Location: "$aviso); 
    } else {
        
$aviso "Email.php";
        
header("Location: "$aviso); 
    }
}
?>
Supongo q para enviar a varios tengo usar forecah
pero tengo dudas para aplicarlo

alguien me puede apoyar gracias :)
  #2 (permalink)  
Antiguo 02/05/2013, 11:32
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Enviar email masivo (seleccionando con checkbox)

La forma de como aplicarlo puede variar..

Se me ocurre

Código PHP:
Ver original
  1. foreach($_POST["email"] as $idEmail){
  2.    //Aqui deberias buscar la información y construir el emial y realizar el envío..
  3. }

PD: Si vas a hacer envíos de masivos te recomiendo que no lo hagas mediante la función mail, por experiencia te lo digo, despues de un tiempo tu dominio o tu servidor de hosting puede ser catalogado como span y luego ese será un problema, ademas la funcion mail actualmente muchos hosting la tienen deshabilitada.
Por lo que te recomiendo que hagas uso de alguna clase que permita envios de correos mediante autenticacion SMTP, personalmente uso phpmailer para ello y me funciona muy bien además que hay mucha información en internet hacerca de como implementarla.

Saludos.
  #3 (permalink)  
Antiguo 02/05/2013, 18:07
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

Gracias por el dato ya estuve checando lo que me indicas solo tengo una duda donde tengo el formulario tengo el checkbos email .... ahora selecciono los q desee y mando a otra pagina donde voy a redactar el email mi duda es la siguiente como hago para filtrar los datos de las personas seleccionadas mediante el checkbos.... es decir q no me muestre todos los registros sino solo los q seleccione ??????
  #4 (permalink)  
Antiguo 02/05/2013, 18:11
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

Por lo regular hago algo asi
<a href="editar.php?id=<?php echo $row_['Folio']; ?>">

Pero no se como condicionar para llevarme los datos del checkbox

  #5 (permalink)  
Antiguo 02/05/2013, 18:46
 
Fecha de Ingreso: enero-2010
Mensajes: 127
Antigüedad: 14 años, 10 meses
Puntos: 2
Respuesta: Enviar email masivo (seleccionando con checkbox)

amigo es asi:

Código HTML:
Ver original
  1. <form id="form1" name="form1" method="post" action="procesar.php">
  2.   usuario
  3.  
  4.     <input type="checkbox" name="usuario" id="usuario" value="<? echo $correo; ?>" />
  5.  
  6. </form>

recuerda que en procesra colocar tu php para verificar a quiens ele envia el correo, en donde dice value es el dato del checkbox y como verificas en php si está o no marcado el checkbox facil asi

Código PHP:
Ver original
  1. <?
  2. if ($_POST['usuario'] != "") {
  3. // mandas el correo
  4. }
  5. ?>
  #6 (permalink)  
Antiguo 03/05/2013, 09:15
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

Cita:
Iniciado por jgames88 Ver Mensaje
amigo es asi:

Código HTML:
Ver original
  1. <form id="form1" name="form1" method="post" action="procesar.php">
  2.   usuario
  3.  
  4.     <input type="checkbox" name="usuario" id="usuario" value="<? echo $correo; ?>" />
  5.  
  6. </form>

recuerda que en procesra colocar tu php para verificar a quiens ele envia el correo, en donde dice value es el dato del checkbox y como verificas en php si está o no marcado el checkbox facil asi

Código PHP:
Ver original
  1. <?
  2. if ($_POST['usuario'] != "") {
  3. // mandas el correo
  4. }
  5. ?>
Gracias por tu respuesta pero en <form action ya tengo esta parte con un valor....
asi que no creo q pueda poner doble action xD
si lo mando como algo asi
<a href="editar.php">

despues tendria q ser el foreach para validar solo los q estan marcados por el checkbox o tengo q tenerlo como algo asi
<a href="editar.php?id=<?php echo $row['Folio']; ?>"> // Aqui no se como pasar el check
  #7 (permalink)  
Antiguo 03/05/2013, 10:04
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

lo puse asi
<a href="editar.php">Enviar Emial</a>

y asi editar.php

Código PHP:
<?  
 

if (count($_POST['email'])) 



foreach (
$_POST['email'] as $v


$sql="select * from informesp where Email='$v'"

mysql_select_db($database_connection$connection);
  
$res mysql_query($sql$connection) or die(mysql_error());
  
  echo 
$res['Folio'];


  
}
else{
    echo 
"sin respuesta";

?>
Pero no visualizo registros solo sin respuesta

Última edición por Briss; 03/05/2013 a las 10:16
  #8 (permalink)  
Antiguo 03/05/2013, 10:41
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Enviar email masivo (seleccionando con checkbox)

Mira nada mas para contextualizar un poco mejor, puedes mostrar el codigo que estas utilizando?
para ver como tienes estructurado el archivo, porque tal parece que nada mas es cosa de ordenar un poco el codigo y agregar una que otra validacion
  #9 (permalink)  
Antiguo 03/05/2013, 10:58
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

Cita:
Iniciado por alex1084 Ver Mensaje
Mira nada mas para contextualizar un poco mejor, puedes mostrar el codigo que estas utilizando?
para ver como tienes estructurado el archivo, porque tal parece que nada mas es cosa de ordenar un poco el codigo y agregar una que otra validacion

Tengo una consulta primero despues muestro en do while su resultados aqui mi formulario

Código PHP:
<form action="<?php echo $editFormAction?>" method="post" id="form1" name="form1" ><a href="index2.php">Enviar Emial</a> 
  <table border="0" class="normal">
  <thead>
    <tr>
    
      <td>FOLIO</td>
      <td>Nombre</td>
      <td>apellido paterno</td>
      <td>apellido Materno</td>
     
      <td>/td>

    </tr></thead>
  <?php do { ?>
    <tbody>
      <tr>
     
        <td ><?php echo $rows['Folio']; ?></td>
        <td><?php echo $row['Nombre']; ?></td>
        <td ><?php echo $row['ApellidoPaterno']; ?></td>
        <td ><?php echo $row['ApellidoMaterno']; ?></td>
       

        
              <td><a href="editarregistro.php?id=<?php echo $row['Folio']; ?>"><img src="mas.png" /></a></div></td>
            
      
        
        </td> 
         <td><input name="email[]" value="<? echo $row['Email'];?>" type="checkbox" /><td> 
      </tr></tbody>
    <?php } while ($rowmysql_fetch_assoc($row)); ?>
El formulario muestra bien los datos si me voy a editar funciona tambien ....

despues de marcar el checkbox email

me voy aca <a href="editar.php">Enviar Email</a>

editar.php y nada

Código PHP:
<?  
 

if (count($_POST['email'])) 



foreach (
$_POST['email'] as $v


$sql="select * from informesp where Email='$v'"

mysql_select_db($database_connection$connection);
  
$res mysql_query($sql$connection) or die(mysql_error());
  
  echo 
$res['Folio'];


  
}
else{
    echo 
"sin respuesta";

?>
  #10 (permalink)  
Antiguo 03/05/2013, 11:28
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Enviar email masivo (seleccionando con checkbox)

Mira lo que pasa que para enviar lo haces mediante un link
Cita:
<a href="index2.php">Enviar Emial</a>
Si estas ocupando un formulario lo correcto sería que coloques un boton submit
Cita:
<input type="submit" value="Enviar Email" name="buscar">
Si ocupas etiquetas "a" no podras hacer envios por post a menos que los hagas con javascript.
  #11 (permalink)  
Antiguo 03/05/2013, 11:32
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

Cita:
Iniciado por alex1084 Ver Mensaje
Mira lo que pasa que para enviar lo haces mediante un link

Si estas ocupando un formulario lo correcto sería que coloques un boton submit

Si ocupas etiquetas "a" no podras hacer envios por post a menos que los hagas con javascript.
Gracias una pregunta y como direcciono ese boton a editar.php????
  #12 (permalink)  
Antiguo 03/05/2013, 11:44
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

lo puse asi
<a href="#" onclick="top.window.location.href='editar.php' ; return !1">Enviar email</a>

Pero sigue el mensaje sin pasar datos
  #13 (permalink)  
Antiguo 03/05/2013, 11:55
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Enviar email masivo (seleccionando con checkbox)

es que mira con eso lo que haces nada mas es redireccionar la pagina al archivo editar.php cuando haces click en enviar email.

Pero si quieres que los elementos del formulario se envíen entonces debes ocupar un boton html tal como te comentaba anteriormente y en el action del formulario colocale editar.php

Creo que no comprendes muy bien el trabajo de los form verdad..
  #14 (permalink)  
Antiguo 03/05/2013, 12:02
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

Cita:
Iniciado por alex1084 Ver Mensaje
es que mira con eso lo que haces nada mas es redireccionar la pagina al archivo editar.php cuando haces click en enviar email.

Pero si quieres que los elementos del formulario se envíen entonces debes ocupar un boton html tal como te comentaba anteriormente y en el action del formulario colocale editar.php

Creo que no comprendes muy bien el trabajo de los form verdad..
Si he trabajado con ellos pero mi formulario ya usa action donde edito registros personales asi q no creo q pueda usarlo doble vez
  #15 (permalink)  
Antiguo 03/05/2013, 12:06
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

Bueno por lo mientras estoy probando con el action y el boton pero me arrojo el sig error
Warning: implode() [function.implode]: Invalid arguments passed in
  #16 (permalink)  
Antiguo 03/05/2013, 12:13
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

esta es la consulta en editar.php



$sql="select * from informesp where Email IN (".implode(',',$aLista).")";

mysql_select_db($database_connection, $connection);
$res = mysql_query($sql, $connection) or die(mysql_error());
  #17 (permalink)  
Antiguo 03/05/2013, 13:27
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Enviar email masivo (seleccionando con checkbox)

Mira vamos despacio.

Sin duda tu problema es porque no tienes ordenado el proceso a seguir en tu codigo, recuerda que cuando programas tu le das todas las instrucciones y por lo tanto tu debes tener claro el proceso para definir los pasos lógicos que debe seguir la aplicación.
En primer lugar que es lo que debe hacer la aplicacion?
Porque si me dices esto
Cita:
Si he trabajado con ellos pero mi formulario ya usa action donde edito registros personales asi q no creo q pueda usarlo doble vez
Entonces me pregunto si estas editando datos, que es primero guardar los datos que editas y luego enviar correo? o enviar correo primero y luego guardar datos? o el usuario puede elegir si desea guardar los datos editados o enviar los correos?

Todas estas preguntas son necesarias ya que depende de las respuestas asi será lo que se debe programar, las aplicaciones no tienen inteligencia artificial para adivinar que deben hacer por lo tanto tu debes decidir e indicarles que hacer.
  #18 (permalink)  
Antiguo 03/05/2013, 13:49
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

El usuario elegi editar o enviar mensaje
  #19 (permalink)  
Antiguo 03/05/2013, 13:55
 
Fecha de Ingreso: abril-2008
Ubicación: El Salvador
Mensajes: 736
Antigüedad: 16 años, 7 meses
Puntos: 47
Respuesta: Enviar email masivo (seleccionando con checkbox)

ok, entonces coloca en form distintos cada cosa.

Los datos que quieras editar y que envias a otro script php colocalos en un form.
y los checkbox de la lista de correos a enviar colocalos en otro form y en el action de este form coloca editar.php
Asi toda la información que coloques en el formulario donde esten los checkbox será enviado al script editar y ahi podras recibirlo sin problemas.

Recuerda que si el usuario puede elegir entre hacer una cosa y hacer otra, entonces significa que deben ser dos formularios ya que o envia una cosa o envia otra.. espero te ayude
  #20 (permalink)  
Antiguo 03/05/2013, 17:20
Avatar de juanito1712  
Fecha de Ingreso: mayo-2010
Ubicación: Valencia
Mensajes: 1.124
Antigüedad: 14 años, 6 meses
Puntos: 66
Respuesta: Enviar email masivo (seleccionando con checkbox)

no se si me confundo lo he revisado un poco con prisas, solo queria hacer un pequeño apunte extraido de la documentación

Cita:
Nota:

Es importante indicar que la función mail() no es conveniente para grandes volúmenes de correo en bucle. Esta función abre y cierra un socket SMTP para cada correo, algo que no es muy eficiente.

Para enviar una gran cantidad de correo, ver los paquetes » PEAR::Mail y » PEAR::Mail_Queue.
  #21 (permalink)  
Antiguo 06/05/2013, 10:01
Avatar de Briss  
Fecha de Ingreso: junio-2011
Mensajes: 1.293
Antigüedad: 13 años, 4 meses
Puntos: 12
Respuesta: Enviar email masivo (seleccionando con checkbox)

Gracias a todos bien ya hice por sepado editar y enviar mensaje...
Ya tengo la parte de que al selleccionar los checkbox (elegir a quien se enviara mensaje)

Ahora tengo una duda como hago un select de las personas que fueron seleccionadas con el checkbox tengo lo siguiente

Código PHP:
if( !empty($_POST['email']))   {
foreach (
$_POST['email'] as $v


$sql="select * from informesp '"
ACA QUIERO CONDICIONAR PARA Q SOLO ME MUESTRE LOS QUE SELECCIONE CON LOS CHECKBOX

mysql_select_db
($database_connection$connection);
  
$res mysql_query($sql$connection) or die(mysql_error());
  

  
  echo 
$res['Folio'];



}  
}else{
    echo 
"<script language='JavaScript'> 
                alert('No se ha seleccionado ningun destinatario'); 
                </script>"
;

    } 

Etiquetas: email, formulario, masivo, mysql, registro
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 12:17.