Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Envio de correo a varios destinatarios con phpMailer

Estas en el tema de Envio de correo a varios destinatarios con phpMailer en el foro de Frameworks JS en Foros del Web. Hola amigos del foro espero me puedan ayudar, les comento la situacion nota : estoy trabajando en una aplicacion que integra fullcalendar+postgresql+php. estoy realizando sin ...

  #1 (permalink)  
Antiguo 17/04/2012, 20:43
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Envio de correo a varios destinatarios con phpMailer

Hola amigos del foro espero me puedan ayudar, les comento la situacion


nota : estoy trabajando en una aplicacion que integra fullcalendar+postgresql+php.

estoy realizando sin problemas las operaciones de Insertar,consultar,modificar,eliminar eventos.

PERO tengo el siguiente requerimiento que al insertar un evento se abra una ventana modal y que el usuario pueda escojer a cuales destinatarios quiere que le llegue una notificacion por correo electronico.


estoy utilizando una ventana modal en la cual tengo 35 checkboxs que son los destinatarios del correo.

necesito situar al final un checkbox para seleccionar todos los checkbox(Marcar todos | Marcar ninguno) como en este( http://www.desarrolloweb.com/articul...rio-check.html )

necesito enviar el correo a los n destinatarios que escogi mediante los 35 checkboxs

para enviar el correo voy a utilizar phpMailer.


me pueden ayudar por favor, que ideas tienen , por favor me indican si voy por buen camino o no.
  #2 (permalink)  
Antiguo 17/04/2012, 20:49
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

ustedes que opinan los 35 checkboxs son los destinatarios estos deberian de estar en la base de datos ? seria mas facil enviar los correso si estan en la bd?
  #3 (permalink)  
Antiguo 20/04/2012, 04:24
Avatar de FerraN10  
Fecha de Ingreso: junio-2011
Ubicación: Sant Joan Despí
Mensajes: 79
Antigüedad: 12 años, 10 meses
Puntos: 3
Mensaje Respuesta: Envio de correo a varios destinatarios con phpMailer

Cita:
Iniciado por Montes28 Ver Mensaje
ustedes que opinan los 35 checkboxs son los destinatarios estos deberian de estar en la base de datos ? seria mas facil enviar los correso si estan en la bd?
Estoy contigo, podrias organizar por grupos en una BBDD y seria mucho mas facil el envio de correos...
__________________
El fin de mi tarea no fue el fin sino el trayecto
Si vivir es la odisea el horizonte que clarea
En esta aldea parece perfecto así que bienvenido lo que sea
  #4 (permalink)  
Antiguo 22/04/2012, 18:21
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Envio de correo a varios destinatarios con phpMailer

Holas,

Si deseas usar los checkbox pues si es posible, podrias incluso registrar los ids de cada usuario o cliente dandole el valor al checkbox y luego cuando le des submit los valores los almacenas en una tabla para luego hacer los envios o si deseas enviarlos en el momento.

Saludos
__________________
.: Gildus :.
  #5 (permalink)  
Antiguo 22/04/2012, 21:24
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

gildus gracias por responder

para enviar un correo a un destinatario estoy utilizando:

Código PHP:
Ver original
  1. require_once('phpMailer/class.phpmailer.php');
  2. require_once("phpMailer/class.smtp.php");
  3. $mail = new PHPMailer(true);
  4. $mail->IsSMTP();
  5. $mail->Host       = "smtp.live.com";
  6. $mail->SMTPDebug  = 0;
  7. $mail->SMTPAuth   = true;
  8. $mail->SMTPSecure = "tls";
  9. $mail->Port       = 25;
  10. $mail->Username   = "[email protected]";
  11. $mail->Password   = "****";
  12. $mail->AddAddress('[email protected]', 'oscar');
  13. $mail->SetFrom('[email protected]', 'oscar');
  14. $mail->Subject = 'Calendario Actividades Ingeominas';
  15. $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!';
  16. $mail->MsgHTML("
  17. Estimado Usuario:<br />
  18. <br /><table width='36%' border='1' cellpadding='0' cellspacing='0' bordercolor='#E0ECFF' class='Estilo1'>
  19. <tr>
  20. <td colspan='2' bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='center'><strong>Actividad</strong></div></td>
  21. </tr>
  22. <tr align='center'>
  23. <td width='102' bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Evento</strong></div></td>
  24. <td width='289' bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".$title."</td>
  25. </tr>
  26. <tr align='center'>
  27.  <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Hora Inicio</strong></div></td>
  28.  <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".$fechaRestada."</td>
  29.  </tr>
  30. <tr align='center'>
  31.  <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Hora Fin</strong></div></td>
  32.  <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".$fechaRestadaf."</td>
  33.  </tr>
  34. </table>");
  35.  $mail->Send();

y tengo el siguiente formulario donde tengo las direcciones de correo de los destinatarios


Código HTML:
Ver original
  1. <title>titulo</title>
  2. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  3. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
  4.  
  5. <script type="text/javascript">
  6. //<![CDATA[
  7. $(document).ready(function(){  
  8. $(".chk").click(function(event) {
  9. var laclase = $(this).attr("class");
  10. var count = $(":checkbox.chk:checked").length;
  11. $('#contador').val(count);
  12. });
  13.  
  14. $("#chk_todos").click(function(){
  15.  
  16. var checked_estado = this.checked;
  17.  
  18. if(checked_estado == true){
  19.  $('#contador').val('todos');
  20.  }else{
  21.  $('#contador').val('ninguno');
  22.  }
  23.  $(".chk").each(function(){
  24.  this.checked = checked_estado;
  25.  });
  26. });
  27. });
  28. //]]>
  29. </head>
  30. <form id="form1" method="post" action="recibio.php" style="width: 50%;" name="form1">
  31. <fieldset><label for="nombre">Nombre</label> <input type="text" name="nombre" id="nombre" class="text ui-widget-content ui-corner-all" />
  32. <table border="0" id="users">
  33. <tr>
  34. <td width="244"><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 1</label></td>
  35.  
  36. </tr>
  37. <tr>
  38. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 2</label></td>
  39. </tr>
  40. <tr>
  41. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 3</label></td>
  42. </tr>
  43. <tr>
  44. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 4</label></td>
  45. </tr>
  46. <tr>
  47.  
  48. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 5</label></td>
  49. </tr>
  50. <tr>
  51. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 6</label></td>
  52. </tr>
  53. <tr>
  54. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 7</label></td>
  55. </tr>
  56. <tr>
  57. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 8</label></td>
  58.  
  59. </tr>
  60. <tr>
  61. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 9</label></td>
  62. </tr>
  63. <tr>
  64. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 10</td>
  65. </tr>
  66. <tr>
  67. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 11</td>
  68. </tr>
  69. <tr>
  70.  
  71. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 12</td>
  72. </tr>
  73. <tr>
  74. <td>&nbsp;</td>
  75. </tr>
  76. <tr>
  77. <td><label><input type='checkbox' id='chk_todos' value="checkbox" /></label> todos</td>
  78. </tr>
  79. <p>
  80.   <input name="contador" id="contador" type="text" value="ninguno" />
  81. </p>
  82. <p>
  83.   <label>
  84.   <input type="submit" name="Submit" value="Enviar" />
  85.   </label>
  86. </p>
  87. </form>
  88.  
  89.  
  90. </body>
  91. </html>

y para probar lo que me esta llegando tengo recibio.php


Código PHP:
Ver original
  1. $nombre = $_POST["nombre"];
  2. echo $nombre;
  3. echo "<br>";
  4. $contador = $_POST["contador"];
  5. echo $contador;
  6. echo "<br>";
  7. $destinatarios = $_POST["opcion"];
  8.  
  9. //echo implode(",", $destinatarios);
  10. print_r($destinatarios);
  #6 (permalink)  
Antiguo 22/04/2012, 22:59
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Envio de correo a varios destinatarios con phpMailer

y que problema hay?
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #7 (permalink)  
Antiguo 23/04/2012, 06:47
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

por medio del formulario estoy enviando un array y en el archivo recibio.php compruebo print_r($destinatarios); que si esta llegando.


mi duda es la siguiente: como hago para integrar ese array que me llega al cofigo }

require_once('phpMailer/class.phpmailer.php');
require_once("phpMailer/class.smtp.php");
$mail = new PHPMailer(true);
$mail->IsSMTP();
$mail->Host = "smtp.live.com";
.................................................. ......................


como se integra?
  #8 (permalink)  
Antiguo 23/04/2012, 12:55
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Envio de correo a varios destinatarios con phpMailer

Solo seria cuestión de agregar los destinatarios a PHPMailer....

Código PHP:
Ver original
  1. <?php
  2. //Cambia el $mail->addAddress() por lo siguiente:
  3. foreach($_POST['opcion'] as $email) {
  4.       $mail->addAddress($mail);
  5.       //o bcc
  6.       $mail->addBcc($mail);
  7. }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #9 (permalink)  
Antiguo 23/04/2012, 19:58
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

Nemutagk

gracias por contestar funciono perfecto pero necesito enviar los datos mediante ajax

para enviar por ajax utilizo este codigo

Código Javascript:
Ver original
  1. $.ajax({
  2.                          url:'recibio.php',
  3.                          type:'post',
  4.                          data:{
  5.                             nombre: nombre,
  6.                          
  7.                             }
  8.  
  9. como envio las opciones opcion[]?
  10.  
  11. este es el codigo que funciona bien para enviar a n destinatarios pero como seria si utilizo ajax?
  12.  
  13. [HIGHLIGHT="HTML"]
  14. <html>
  15. <head>
  16. <title>titulo</title>
  17. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  18. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
  19. </script>
  20.  
  21. <script type="text/javascript">
  22. //<![CDATA[
  23. $(document).ready(function(){  
  24.  $(".chk").click(function(event) {
  25.  var laclase = $(this).attr("class");
  26.  var count = $(":checkbox.chk:checked").length;
  27.  $('#contador').val(count);
  28.  });
  29.  
  30.  $("#chk_todos").click(function(){
  31.  
  32.  var checked_estado = this.checked;
  33.  
  34.  if(checked_estado == true){
  35.   $('#contador').val('todos');
  36.   }else{
  37.   $('#contador').val('ninguno');
  38.   }
  39.   $(".chk").each(function(){
  40.   this.checked = checked_estado;
  41.   });
  42.  });
  43. });
  44.  
  45.  
  46. //]]>
  47. </script>
  48. </head>
  49. <body>
  50. <form id="form1" method="post" action="recibio.php" style="width: 50%;" name="form1">
  51. <fieldset><label for="nombre">Nombre</label> <input type="text" name="nombre" id="nombre" class="text ui-widget-content ui-corner-all" />
  52. <table border="0" id="users">
  53. <tr>
  54. <td width="244"><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" />
  55. Oscar Montes
  56. </label></td>
  57.  
  58. </tr>
  59. <tr>
  60. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Oscar Montes</label></td>
  61. </tr>
  62. <tr>
  63. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Diana Garcia</label></td>
  64. </tr>
  65. <tr>
  66. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Lucero Garcia</label></td>
  67. </tr>
  68. <tr>
  69.  
  70. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 5</label></td>
  71. </tr>
  72. <tr>
  73. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 6</label></td>
  74. </tr>
  75. <tr>
  76. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 7</label></td>
  77. </tr>
  78. <tr>
  79. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 8</label></td>
  80.  
  81. </tr>
  82. <tr>
  83. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 9</label></td>
  84. </tr>
  85. <tr>
  86. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 10</td>
  87. </tr>
  88. <tr>
  89. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 11</td>
  90. </tr>
  91. <tr>
  92.  
  93. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 12</td>
  94. </tr>
  95. <tr>
  96. <td>&nbsp;</td>
  97. </tr>
  98. <tr>
  99. <td><label><input type='checkbox' id='chk_todos' value="checkbox" /></label> todos</td>
  100. </tr>
  101. </table>
  102. </fieldset>
  103. <p>
  104.   <input name="contador" id="contador" type="text" value="ninguno" />
  105. </p>
  106. <p>
  107.   <label>
  108.   <input type="submit" name="Submit" value="Enviar" />
  109.   </label>
  110. </p>
  111. </form>
  112.  
  113.  
  114. </body>
  115. </html>

}).done(function(data) {

});
[/HIGHLIGHT]
  #10 (permalink)  
Antiguo 23/04/2012, 20:02
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Envio de correo a varios destinatarios con phpMailer

Eso no tiene nada que ver, enviar vía ajax o POST de la vieja escuela es lo mismo para PHP, aparte, el código que muestras del supuesto ajax no hay nada referente a envió de datos...

Actualización: No había visto que tu pregunta estaba dentro del código >.<, bueno puedes enviarlos como un string y luego con explode crear tu array...

Código Javascript:
Ver original
  1. $(document).on('ready',function() {
  2.                 $('#marcar').on('click', function() {
  3.                     $('input[type=checkbox]').each(function() {
  4.                         if ($(this).attr('checked') != 'checked') {
  5.                             $(this).attr('checked','checked');
  6.                         }else {
  7.                             $(this).removeAttr('checked');
  8.                         }
  9.                     });
  10.                 });
  11.                
  12.                 $('#enviar').on('click',function() {
  13.                     var arrayOpt = new Array;
  14.                     $('input[type=checkbox]').each(function() {
  15.                         if ($(this).attr('checked') == 'checked') {
  16.                             arrayOpt.push($(this).val());
  17.                         }
  18.                     });
  19.                    
  20.                     $.ajax({
  21.                         url:'recibio.php',
  22.                         type:'post',
  23.                         data: 'opciones='+arrayOpt,
  24.                         success: function(datos) {
  25.                             $('#respuesta').html(datos);
  26.                         }
  27.                     });
  28.                 });
  29.             });

y en recibio.php...
Código PHP:
Ver original
  1. $opciones = explode(',',$_POST['opciones']);
  2.  
  3. echo '<pre>';
  4. var_dumpt($opciones);
  5. echo '</pre>';

NOTA: Se me olvidaba, el código que dejo de JQuery es valido únicamente de la versión 1.7 para arriba!
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)

Última edición por Nemutagk; 23/04/2012 a las 20:50
  #11 (permalink)  
Antiguo 23/04/2012, 21:14
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

Nemutagk gracias por responder

intente adaptar tu codigo
#marcar es el checkbox para marcar todos los checkbox?

no me funciona

Código HTML:
Ver original
  1. <form id="form1" method="post"  style="width: 50%;" name="form1">
  2. <fieldset><label for="nombre">Nombre</label> <input type="text" name="nombre" id="nombre" class="text ui-widget-content ui-corner-all" />
  3. <table border="0" id="users">
  4. <tr>
  5. <td width="244"><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" />
  6. Oscar Montes
  7. </label></td>
  8.  
  9. </tr>
  10. <tr>
  11. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Oscar Montes</label></td>
  12. </tr>
  13. <tr>
  14. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Diana Garcia</label></td>
  15. </tr>
  16. <tr>
  17. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Lucero Garcia</label></td>
  18. </tr>
  19. <tr>
  20.  
  21. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 5</label></td>
  22. </tr>
  23. <tr>
  24. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 6</label></td>
  25. </tr>
  26. <tr>
  27. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 7</label></td>
  28. </tr>
  29. <tr>
  30. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 8</label></td>
  31.  
  32. </tr>
  33. <tr>
  34. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 9</label></td>
  35. </tr>
  36. <tr>
  37. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 10</td>
  38. </tr>
  39. <tr>
  40. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 11</td>
  41. </tr>
  42. <tr>
  43.  
  44. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 12</td>
  45. </tr>
  46. <tr>
  47. <td>&nbsp;</td>
  48. </tr>
  49. <tr>
  50. <td><label><input name="marcar" type='checkbox' id='chk_todos' value="checkbox" />
  51. </label> todos</td>
  52. </tr>
  53. <p>
  54.   <input name="contador" id="contador" type="text" value="ninguno" />
  55. </p>
  56. <p>
  57.   <label>
  58.   <input type="submit" name="Submit" value="Enviar" />
  59.   </label>
  60. </p>
  61. </form>
  #12 (permalink)  
Antiguo 23/04/2012, 21:20
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Envio de correo a varios destinatarios con phpMailer

mmm primero verifica que versión de JQuery es la que usas, el código que yo deje es para la versión 1.7 para arriba, si usas una versión anterior no funcionará

Código PHP:
Ver original
  1. <?php
  2. if (isset($_POST['opciones'])) {
  3.     echo '<pre>';
  4.     var_dump($_POST['opciones']);
  5.     echo '</pre>';
  6. }else {
  7. ?>
  8. <html>
  9.     <head>
  10.         <title>checkbox 2</title>
  11.         <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
  12.         <script type="text/javascript">
  13.             $(document).on('ready',function() {
  14.                 $('#chk_todos').on('click', function() {
  15.                     $('input[type=checkbox]').each(function() {
  16.                         if ($(this).attr('checked') != 'checked') {
  17.                             $(this).attr('checked','checked');
  18.                         }else {
  19.                             $(this).removeAttr('checked');
  20.                         }
  21.                     });
  22.                 });
  23.                
  24.                 $('#enviar').on('click',function() {
  25.                     var arrayOpt = new Array;
  26.                     $('input[type=checkbox]').each(function() {
  27.                         if ($(this).attr('checked') == 'checked') {
  28.                             arrayOpt.push($(this).val());
  29.                         }
  30.                     });
  31.                    
  32.                     $.ajax({
  33.                         url:'http://localhost/demos/checkbox.php',
  34.                         type:'post',
  35.                         data: 'opciones='+arrayOpt,
  36.                         success: function(datos) {
  37.                             $('#respuesta').html(datos);
  38.                         }
  39.                     });
  40.                    
  41.                     return false;
  42.                 });
  43.             });
  44.         </script>
  45.     </head>
  46.     <body>
  47.         <form id="form1" method="post"  style="width: 50%;" name="form1">
  48.         <fieldset><label for="nombre">Nombre</label> <input type="text" name="nombre" id="nombre" class="text ui-widget-content ui-corner-all" />
  49.         <table border="0" id="users">
  50.         <tr>
  51.         <td width="244"><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" />
  52.         Oscar Montes
  53.         </label></td>
  54.  
  55.         </tr>
  56.         <tr>
  57.         <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Oscar Montes</label></td>
  58.         </tr>
  59.         <tr>
  60.         <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Diana Garcia</label></td>
  61.         </tr>
  62.         <tr>
  63.         <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Lucero Garcia</label></td>
  64.         </tr>
  65.         <tr>
  66.  
  67.         <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 5</label></td>
  68.         </tr>
  69.         <tr>
  70.         <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 6</label></td>
  71.         </tr>
  72.         <tr>
  73.         <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 7</label></td>
  74.         </tr>
  75.         <tr>
  76.         <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 8</label></td>
  77.  
  78.         </tr>
  79.         <tr>
  80.         <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 9</label></td>
  81.         </tr>
  82.         <tr>
  83.         <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 10</td>
  84.         </tr>
  85.         <tr>
  86.         <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 11</td>
  87.         </tr>
  88.         <tr>
  89.  
  90.         <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 12</td>
  91.         </tr>
  92.         <tr>
  93.         <td>&nbsp;</td>
  94.         </tr>
  95.         <tr>
  96.         <td><label><input name="marcar" type='checkbox' id='chk_todos' value="checkbox" />
  97.         </label> todos</td>
  98.         </tr>
  99.         </table>
  100.         </fieldset>
  101.         <p>
  102.         <input name="contador" id="contador" type="text" value="ninguno" />
  103.         </p>
  104.         <p>
  105.         <label>
  106.         <input type="submit" id="enviar" name="Submit" value="Enviar" />
  107.         </label>
  108.         </p>
  109.         </form>
  110.         <div id="respuesta"></div>
  111.     </body>
  112. </html>
  113. <?php } ?>
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #13 (permalink)  
Antiguo 23/04/2012, 21:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

cuando le doy al checkbox todos <input name="marcar" type='checkbox' id='chk_todos' value="checkbox" /> si se marcan los checkbox pero no se marcha el.
  #14 (permalink)  
Antiguo 23/04/2012, 21:20
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

estoy utilizando <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
  #15 (permalink)  
Antiguo 23/04/2012, 21:24
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Envio de correo a varios destinatarios con phpMailer

¬¬ vamos amigo, no te cuesta nada analizar el código y agregar una validación mas, no quieras todo funcionando al 100% para solo hacer copy/paste...

lo que hace falta es verificar el nombre del checkbox para que modifique o no la marcación...

Código Javascript:
Ver original
  1. $(document).on('ready',function() {
  2.                 $('#chk_todos').on('click', function() {
  3.                     $('input[type=checkbox]').each(function() {
  4.                         if ($(this).attr('name') == 'opcion[]') {
  5.                             if ($(this).attr('checked') != 'checked') {
  6.                                 $(this).attr('checked','checked');
  7.                             }else {
  8.                                 $(this).removeAttr('checked');
  9.                             }
  10.                         }
  11.                     });
  12.                 });
  13.                
  14.                 $('#enviar').on('click',function() {
  15.                     var arrayOpt = new Array;
  16.                     $('input[type=checkbox]').each(function() {
  17.                         if ($(this).attr('name') == 'opcion[]') {
  18.                             if ($(this).attr('checked') == 'checked') {
  19.                                 arrayOpt.push($(this).val());
  20.                             }
  21.                         }
  22.                     });
  23.                    
  24.                     $.ajax({
  25.                         url:'http://localhost/demos/checkbox.php',
  26.                         type:'post',
  27.                         data: 'opciones='+arrayOpt,
  28.                         success: function(datos) {
  29.                             $('#respuesta').html(datos);
  30.                         }
  31.                     });
  32.                    
  33.                     return false;
  34.                 });
  35.             });
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #16 (permalink)  
Antiguo 23/04/2012, 22:29
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

Nemutagk de acuerdo a el codigo que me enviar


en recibo.php

Código PHP:
Ver original
  1. $opciones = explode(',',$_POST['opciones']);
  2.  
  3. echo '<pre>';
  4. var_dumpt($opciones);
  5. echo '</pre>';

yo lo tengo de la siguiente manera para enviar los correos a los n destinatarios

Código PHP:
Ver original
  1. $nombre = $_POST["nombre"];
  2. echo $nombre;
  3. echo "<br>";
  4. $contador = $_POST["contador"];
  5. echo $contador;
  6. echo "<br>";
  7. $opciones = explode(',',$_POST['opciones']);
  8. echo implode(",", $opciones);
  9. require_once('phpMailer/class.phpmailer.php');
  10. require_once("phpMailer/class.smtp.php");
  11. $mail = new PHPMailer(true);
  12. $mail->IsSMTP();
  13. $mail->Host       = "smtp.live.com";
  14. $mail->SMTPDebug  = 0;
  15. $mail->SMTPSecure = "tls";
  16. $mail->Port       = 25;
  17. $mail->Username   = "[email protected]";
  18. $mail->Password   = "****";
  19.   foreach($_POST['opcion'] as $opciones) {
  20.       $mail->addAddress($opciones);
  21.       $mail->addBcc($opciones);
  22. }
  23.   $mail->SetFrom('[email protected]', 'oscar');
  24. $mail->Subject = 'Envio Mensaje';


no logro enviar el mensaje a los destinatarios , al parecer no estoy atrapando el array
me puedes indicar como hacerlo?
  #17 (permalink)  
Antiguo 23/04/2012, 22:34
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Envio de correo a varios destinatarios con phpMailer

O.O amigo, arriba estas recibiendo el valor de opciones y en el foreach estas intentando recoger opcion, realmente no vez el problema?

Código PHP:
Ver original
  1. //código...
  2. $opciones = explode(',',$_POST['opciones']);
  3. echo implode(",", $opciones);
  4. require_once('phpMailer/class.phpmailer.php');
  5. //mas código...
  6. $mail->Password   = "****";
  7.   foreach($_POST['opcion'] as $opciones) {

enserio, sin ofender, pero no se si lo que buscas es que te entregue (o entreguemos) ya tu código funcionando o si de plano ya llevas tanto tiempo con tu código que no ves los errores, y repito, sin ofender, pero lee de nuevo y analiza tu código, el error es muy claro...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #18 (permalink)  
Antiguo 23/04/2012, 22:37
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

si identifique el problema pero no logro enviar el correo

Código PHP:
Ver original
  1. foreach($_POST['opciones'] as $opciones) {
  2.  
  3.       $mail->addAddress($opciones);
  4.  
  5.       $mail->addBcc($opciones);
  6. }
  #19 (permalink)  
Antiguo 23/04/2012, 22:53
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

con este codigo estoy enviando un array opciones

Código Javascript:
Ver original
  1. $.ajax({
  2.                         url:'recibio.php',
  3.                         type:'post',
  4.                         data: 'opciones='+arrayOpt,
  5.                         success: function(datos) {
  6.                             $('#respuesta').html(datos);
  7.                         }


y con este codigo estoy recogiendo dicho array
Código PHP:
Ver original
  1. $opciones = explode(',',$_POST['opciones']);
  2. echo implode(",", $opciones);

y para en correo estoy utilizando este codigo

Código PHP:
Ver original
  1. foreach($_POST['opciones'] as $opciones) {
  2.  
  3.       $mail->addAddress($opciones);
  4.  
  5.       $mail->addBcc($opciones);
  6. }

sinceramente no veo el error , sera que ya estoy cansado de tanto verlo que no doy con el error , perdonenme!!!
  #20 (permalink)  
Antiguo 24/04/2012, 05:15
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

tengo una duda cuando le doy enviar tengo en la url

http://localhost/prueba/?nombre=Montes&opcion[]=ohmq22%40hotmail.com&contador=ninguno&Submit=Envi ar

espero me corrigan



para mi estoy enviando unas variables
nombre
el array opcion[]
contador

pero no recibo nada

que estoy haciendo mal?

en el codigo que me proporciona Nemutagk , veo que data: 'opciones='+arrayOpt,

pero al ver la url el array se llama opcion[]=


Código Javascript:
Ver original
  1. <script type='text/javascript'>
  2. //<![CDATA[
  3. $(document).on('ready',function() {
  4.                 $('#chk_todos').on('click', function() {
  5.                     $('input[type=checkbox]').each(function() {
  6.                         if ($(this).attr('name') == 'opcion[]') {
  7.                             if ($(this).attr('checked') != 'checked') {
  8.                                 $(this).attr('checked','checked');
  9.                             }else {
  10.                                 $(this).removeAttr('checked');
  11.                             }
  12.                         }
  13.                     });
  14.                 });
  15.                
  16.                 $('#enviar').on('click',function() {
  17.                     var arrayOpt = new Array;
  18.                     $('input[type=checkbox]').each(function() {
  19.                         if ($(this).attr('name') == 'opcion[]') {
  20.                             if ($(this).attr('checked') == 'checked') {
  21.                                 arrayOpt.push($(this).val());
  22.                             }
  23.                         }
  24.                     });
  25.                    
  26.                     $.ajax({
  27.                         url:'recibio.php',
  28.                         type:'post',
  29.                         data: 'opciones='+arrayOpt,
  30.                         success: function(datos) {
  31.                             //$('#respuesta').html(datos);
  32.                            
  33.                         }
  34.                     });
  35.        
  36.                    
  37.                     return false;
  38.                 });
  39.             });
  40.  
  41. //]]>
  42. </script>
  #21 (permalink)  
Antiguo 24/04/2012, 07:30
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Envio de correo a varios destinatarios con phpMailer

Hiciste los cambios tal cual deje en el código? porque en el botón enviar no había ningun ID para poder "anclarle" el evento "click", ahora, dices que vez la variable "opcion[]" en la url, cual url? en donde la vez? firebug? consola de debug? en el cuadro de direcciones del navegador?...

Cita:
tengo una duda cuando le doy enviar tengo en la url

http://localhost/prueba/?nombre=Montes&opcion[]=ohmq22%40hotmail.com&contador=ninguno&Submit=Envi ar

espero me corrigan
Eso significa que estas enviando vía POST directo, no vía Ajax, o al menos, no con el código que yo te deje, ya que la única variable que se envía es la variable opciones... no se que es lo que estas haciendo amigo, pero lo que sea que hagas no lo estas haciendo bien >.< jejeje, el código que te eh dejado lo eh probado y funciona correctamente...

Nota: será mejor que muestres todo el código que estas usando para ver que es lo que estas haciendo...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #22 (permalink)  
Antiguo 24/04/2012, 11:42
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

Nemutagk gracias por responder

este es mi codigo

Código HTML:
Ver original
  1. <title>titulo</title>
  2. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  3. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
  4.  
  5. <script type='text/javascript'>
  6. //<![CDATA[
  7. $(document).on('ready',function() {
  8.                $('#chk_todos').on('click', function() {
  9.                    $('input[type=checkbox]').each(function() {
  10.                        if ($(this).attr('name') == 'opcion[]') {
  11.                            if ($(this).attr('checked') != 'checked') {
  12.                                $(this).attr('checked','checked');
  13.                            }else {
  14.                                $(this).removeAttr('checked');
  15.                            }
  16.                        }
  17.                    });
  18.                });
  19.                
  20.                $('#enviar').on('click',function() {
  21.                    var arrayOpt = new Array;
  22.                    $('input[type=checkbox]').each(function() {
  23.                        if ($(this).attr('name') == 'opcion[]') {
  24.                            if ($(this).attr('checked') == 'checked') {
  25.                                arrayOpt.push($(this).val());
  26.                            }
  27.                        }
  28.                    });
  29.                    
  30.                    $.ajax({
  31.                        url:'recibio.php',
  32.                        type:'get',
  33.                        data: 'opciones='+arrayOpt,
  34.                        success: function(datos) {
  35.                            $('#respuesta').html(datos);
  36.                                                     }
  37.                    });
  38.                    
  39.                    return false;
  40.                });
  41.            });
  42.  
  43. //]]>
  44.  
  45.                    
  46.                  
  47.      
  48. </head>
  49. <form id="form1"  style="width: 50%;" name="form1">
  50. <fieldset><label for="nombre">Nombre</label> <input type="text" name="nombre" id="nombre" class="text ui-widget-content ui-corner-all" />
  51. <table border="0" id="users">
  52. <tr>
  53. <td width="244"><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" />
  54. Oscar Montes
  55. </label></td>
  56.  
  57. </tr>
  58. <tr>
  59. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Oscar Montes</label></td>
  60. </tr>
  61. <tr>
  62. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Diana Garcia</label></td>
  63. </tr>
  64. <tr>
  65. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Lucero Garcia</label></td>
  66. </tr>
  67. <tr>
  68.  
  69. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 5</label></td>
  70. </tr>
  71. <tr>
  72. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 6</label></td>
  73. </tr>
  74. <tr>
  75. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 7</label></td>
  76. </tr>
  77. <tr>
  78. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 8</label></td>
  79.  
  80. </tr>
  81. <tr>
  82. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 9</label></td>
  83. </tr>
  84. <tr>
  85. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 10</td>
  86. </tr>
  87. <tr>
  88. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 11</td>
  89. </tr>
  90. <tr>
  91.  
  92. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 12</td>
  93. </tr>
  94. <tr>
  95. <td>&nbsp;</td>
  96. </tr>
  97. <tr>
  98. <td><label><input type='checkbox' id='chk_todos' value="checkbox" />
  99. </label> todos</td>
  100. </tr>
  101. <p>
  102.   <input name="contador" id="contador" type="text" value="ninguno" />
  103. </p>
  104. <p>
  105.   <label>
  106.   <input type="submit" name="Submit" value="Enviar" id="enviar"/>
  107.   </label>
  108. </p>
  109. </form>
  110. <div id="respuesta">
  111. </div>
  112.  
  113. </body>
  114. </html>

y el recibio.php

Código PHP:
Ver original
  1. nombre = $_POST["nombre"];
  2. echo $nombre;
  3. echo "<br>";
  4. $contador = $_POST["contador"];
  5. echo $contador;
  6. echo "<br>";
  7. $destinatarios = explode(',',$_POST['opcion']);
  8. echo implode(",", $destinatarios);
  9.  
  10. $servidor = 'localhost';
  11. $bd = 'insert';
  12. $usuario = 'postgres';
  13. $contrasenia = 'hoe798cs';
  14.    
  15. global $servidor, $bd, $usuario, $contrasenia;
  16. $db = new PDO('pgsql:host=' . $servidor . ';dbname=' . $bd, $usuario, $contrasenia);
  17.  
  18.  
  19. $consulta = $db->prepare("INSERT INTO ensayo (id,nombre,destinatarios)
  20.                                  VALUES (nextval('ensayo_id_seq'),'".$nombre."','$destinatarios')");
  21. $consulta->execute();
  22.  
  23.  
  24.  
  25. require_once('phpMailer/class.phpmailer.php');
  26. require_once("phpMailer/class.smtp.php"); // optional, gets called from within class.phpmailer.php if not already loaded
  27.  
  28. $mail = new PHPMailer(true); // the true param means it will throw exceptions on errors, which we need to catch
  29.  
  30. $mail->IsSMTP(); // telling the class to use SMTP
  31.  
  32.  
  33.   $mail->Host       = "smtp.live.com"; // SMTP server
  34.   $mail->SMTPDebug  = 2;                     // enables SMTP debug information (for testing)
  35.   $mail->SMTPAuth   = true;                  // enable SMTP authentication
  36.   //$mail->Host       = "mail.yourdomain.com"; // sets the SMTP server
  37.  
  38.   $mail->SMTPSecure = "tls";
  39.   $mail->Port       = 25;                    // set the SMTP port for the GMAIL server
  40.   $mail->Username   = "[email protected]"; // SMTP account username
  41.   $mail->Password   = "oscarydiana";        // SMTP account password
  42.   //$mail->AddReplyTo('[email protected]', 'oscar');
  43.   foreach($_POST['opcion'] as $destinatarios) {
  44.  
  45.       $mail->addAddress($destinatarios);
  46.       //o bcc
  47.       $mail->addBcc($destinatarios);
  48. }
  49.   $mail->SetFrom('[email protected]', 'oscar');
  50.   //$mail->AddReplyTo('[email protected]', 'oscar');
  51.   $mail->Subject = 'Calendario Actividades Ingeominas';
  52.   $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  53.   $mail->MsgHTML("
  54. Estimado Usuario:<br />
  55. <br /><table width='36%' border='1' cellpadding='0' cellspacing='0' bordercolor='#E0ECFF' class='Estilo1'>
  56. <tr>
  57. <td colspan='2' bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='center'><strong>Actividad</strong></div></td>
  58. </tr>
  59. <tr align='center'>
  60. <td width='102' bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Evento</strong></div></td>
  61. <td width='289' bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".$nombre."</td>
  62. </tr>
  63. <tr align='center'>
  64.  <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Hora Inicio</strong></div></td>
  65.  <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".$nombre."</td>
  66.  </tr>
  67. <tr align='center'>
  68.  <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Hora Fin</strong></div></td>
  69.  <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".$nombre."</td>
  70.  </tr>
  71. </table>");
  72. $mail->Send();

no se que estoy haciendo mal?

gracias por la ayuda.
  #23 (permalink)  
Antiguo 24/04/2012, 13:54
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Envio de correo a varios destinatarios con phpMailer

es obvio que no funcione, cambias el metodo en un archivo y no lo cambias en el otro...

Código Javascript:
Ver original
  1. //código
  2.                     $.ajax({
  3.                         url:'recibio.php',
  4.                         type:'get',                //lo estas enviando como GET!!!!
  5. //mas código

y en recibio.php
Código PHP:
Ver original
  1. nombre = $_POST["nombre"];
  2. echo $nombre;
  3. echo "<br>";
  4. $contador = $_POST["contador"];
  5. echo $contador;
  6. echo "<br>";
  7.  
  8. /*
  9. *    Primero lo recibes como POST y en segunda recibes OPCION en vez de OPCIONES,
  10. *    obviamente no lo vas a recibir nunca! ni como get ni como post!
  11. */
  12. $destinatarios = explode(',',$_POST['opcion']);
  13. echo implode(",", $destinatarios);
  14.  
  15. //mas código
  16.  
  17.  
  18. /*
  19. *    y aquí cometes de nuevo los mismos errores de arriba, si vas a modificar un código DEBES,
  20. *    verificar que este no afecte a otros archivos y si lo hace DEBES ACTUALIZAR TODOS los
  21. *    archivos, si no, jamas funcionará!
  22. */
  23.  
  24.   //$mail->AddReplyTo('[email protected]', 'oscar');
  25.   foreach($_POST['opcion'] as $destinatarios) {
  26.  
  27.       $mail->addAddress($destinatarios);
  28.       //o bcc
  29.       $mail->addBcc($destinatarios);
  30. }
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #24 (permalink)  
Antiguo 24/04/2012, 19:40
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Envio de correo a varios destinatarios con phpMailer

Holas,

Con el phpMailer cuando haces envios en un bucle trata de usarlo algo como:

Código PHP:
Ver original
  1. while(....){
  2.     ....
  3.     $mail->addAddress($destinatarios);
  4.     ....
  5.  
  6.     if(!$mail->Send()){
  7.         ...
  8.     }
  9.     ...
  10.     $mail->ClearAddresses();
  11.     $mail->ClearAttachments();
  12.     ...
  13.    
  14.    
  15. }


Porque sino vas ha enviar todos los correos juntos.


Saludos
__________________
.: Gildus :.
  #25 (permalink)  
Antiguo 24/04/2012, 22:41
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

hola amigos

no he podido identificar el error de mi codigo este es mi codigo javascript

estoy enviando por post un array opciones

Código Javascript:
Ver original
  1. <script type='text/javascript'>
  2. $(document).on('ready',function() {
  3.                 $('#chk_todos').on('click', function() {
  4.                     $('input[type=checkbox]').each(function() {
  5.                         if ($(this).attr('name') == 'opcion[]') {
  6.                             if ($(this).attr('checked') != 'checked') {
  7.                                 $(this).attr('checked','checked');
  8.                             }else {
  9.                                 $(this).removeAttr('checked');
  10.                             }
  11.                         }
  12.                     });
  13.                 });
  14.                
  15.                 $('#enviar').on('click',function() {
  16.                     var arrayOpt = new Array;
  17.                     $('input[type=checkbox]').each(function() {
  18.                         if ($(this).attr('name') == 'opcion[]') {
  19.                             if ($(this).attr('checked') == 'checked') {
  20.                                 arrayOpt.push($(this).val());
  21.                             }
  22.                         }
  23.                     });
  24.                    
  25.                     $.ajax({
  26.                         url:'recibio.php',
  27.                         type:'post',
  28.                         data: 'opciones='+arrayOpt,
  29.                         success: function(datos) {
  30.                             //$('#respuesta').html(datos);
  31.                             //alert("Datos guardados, respuesta:");
  32.                         }
  33.                     });
  34.                    
  35.                    
  36.                     return false;
  37.                 });
  38.             });
  39.  
  40. </script>

en mi archivo recibi.php
aca recibo por post el array

y lo integro con el el phpMailer
Código PHP:
Ver original
  1. $destinatarios = explode(',',$_POST['opciones']);
  2. echo implode(",", $destinatarios);
  3.  
  4. require_once('phpMailer/class.phpmailer.php');
  5. require_once("phpMailer/class.smtp.php");
  6. $mail = new PHPMailer(true);
  7. $mail->IsSMTP();
  8. $mail->Host       = "smtp.live.com";
  9. $mail->SMTPDebug  = 2;
  10. $mail->SMTPAuth   = true;
  11. $mail->SMTPSecure = "tls";
  12. $mail->Port       = 25;
  13. $mail->Username   = "[email protected]";
  14. $mail->Password   = "***";
  15.  
  16. $mail->AddReplyTo('[email protected]', 'oscar');
  17.   foreach($_POST['opciones'] as $destinatarios) {
  18.  
  19.       $mail->addAddress($destinatarios);
  20.       //o bcc
  21.       $mail->addBcc($destinatarios);
  22. }
  23.   $mail->SetFrom('[email protected]', 'oscar');
  24. $mail->Subject = 'Mensaje de Prueba';

no se que estoy haciendo mal .
  #26 (permalink)  
Antiguo 24/04/2012, 22:48
Avatar de Nemutagk
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: México
Mensajes: 2.633
Antigüedad: 20 años
Puntos: 406
Respuesta: Envio de correo a varios destinatarios con phpMailer

Sinceramente no se que es lo que pasa, pero tanto el código que yo poste mas aparte la ultima corrección que te hice funcionan... aparte, hablas de que no funcionan pero ya no dices porque, sinceramente me quedo sin ideas, ya que a mi el código funciona de manera correcta...
__________________
Listo?, tendría que tener 60 puntos menos de IQ para considerarme listo!!!
-- Sheldon Cooper
http://twitter.com/nemutagk
PD: No contestaré temas vía mensaje personal =)
  #27 (permalink)  
Antiguo 24/04/2012, 23:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

Nemutagk gracias por la disposición de ayuda

no estoy recibiendo nada ya intente por get y por post

este es todo mi codigo codigo

Código HTML:
Ver original
  1. <title>titulo</title>
  2. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  3. <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js">
  4.  
  5. <script type='text/javascript'>
  6.  
  7. $(document).on('ready',function() {
  8.                 $('#chk_todos').on('click', function() {
  9.                     $('input[type=checkbox]').each(function() {
  10.                         if ($(this).attr('name') == 'opcion[]') {
  11.                             if ($(this).attr('checked') != 'checked') {
  12.                                 $(this).attr('checked','checked');
  13.                             }else {
  14.                                 $(this).removeAttr('checked');
  15.                             }
  16.                         }
  17.                     });
  18.                 });
  19.                
  20.                 $('#enviar').on('click',function() {
  21.                     var arrayOpt = new Array;
  22.                     $('input[type=checkbox]').each(function() {
  23.                         if ($(this).attr('name') == 'opcion[]') {
  24.                             if ($(this).attr('checked') == 'checked') {
  25.                                 arrayOpt.push($(this).val());
  26.                             }
  27.                         }
  28.                     });
  29.                    
  30.                     $.ajax({
  31.                         url:'recibio.php',
  32.                         type:'post',
  33.                         data: 'opciones='+arrayOpt,
  34.                         success: function(datos) {
  35.                                             }
  36.                     });
  37.                                        
  38.                     return false;
  39.                 });
  40.             });
  41.  
  42.  
  43.                    
  44.                  
  45.      
  46. </head>
  47. <form id="form1"  style="width: 50%;">
  48. <fieldset><label for="nombre">Nombre</label> <input type="text" name="nombre" id="nombre" class="text ui-widget-content ui-corner-all" />
  49. <table border="0" id="users">
  50. <tr>
  51. <td width="244"><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" />
  52. Oscar Montes
  53. </label></td>
  54.  
  55. </tr>
  56. <tr>
  57. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Oscar Montes</label></td>
  58. </tr>
  59. <tr>
  60. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Diana Garcia</label></td>
  61. </tr>
  62. <tr>
  63. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Lucero Garcia</label></td>
  64. </tr>
  65. <tr>
  66.  
  67. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 5</label></td>
  68. </tr>
  69. <tr>
  70. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 6</label></td>
  71. </tr>
  72. <tr>
  73. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 7</label></td>
  74. </tr>
  75. <tr>
  76. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 8</label></td>
  77.  
  78. </tr>
  79. <tr>
  80. <td><label><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 9</label></td>
  81. </tr>
  82. <tr>
  83. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 10</td>
  84. </tr>
  85. <tr>
  86. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 11</td>
  87. </tr>
  88. <tr>
  89.  
  90. <td><input class="chk" type="checkbox" name="opcion[]" value="[email protected]" /> Destinatario 12</td>
  91. </tr>
  92. <tr>
  93. <td>&nbsp;</td>
  94. </tr>
  95. <tr>
  96. <td><label><input type='checkbox' id='chk_todos' value="checkbox" />
  97. </label> todos</td>
  98. </tr>
  99. <p>
  100.   <input name="contador" id="contador" type="text" value="ninguno" />
  101. </p>
  102. <p>
  103.   <label>
  104.   <input type="submit" name="Submit" value="Enviar" id="enviar" />
  105.   </label>
  106. </p>
  107. </form>
  108. </body>
  109. </html>


y en recibio.php

Código PHP:
Ver original
  1. $destinatarios = explode(',',$_POST['opciones']);
  2. $servidor = 'localhost';
  3. $bd = 'insert';
  4. $usuario = 'postgres';
  5. $contrasenia = 'hoe798cs';
  6.    
  7. global $servidor, $bd, $usuario, $contrasenia;
  8. $db = new PDO('pgsql:host=' . $servidor . ';dbname=' . $bd, $usuario, $contrasenia);
  9.  
  10.  
  11. $consulta = $db->prepare("INSERT INTO ensayo (id,nombre,destinatarios)
  12.                                  VALUES (nextval('ensayo_id_seq'),'".Montes."','$destinatarios')");
  13. $consulta->execute();
  14.  
  15. require_once('phpMailer/class.phpmailer.php');
  16. require_once("phpMailer/class.smtp.php");
  17.  
  18. $mail = new PHPMailer(true);
  19.  
  20. $mail->IsSMTP();
  21.  
  22.  
  23.   $mail->Host       = "smtp.live.com";
  24.   $mail->SMTPDebug  = 2;                    
  25.   $mail->SMTPAuth   = true;                  
  26.  
  27.  
  28.   $mail->SMTPSecure = "tls";
  29.   $mail->Port       = 25;                    
  30.   $mail->Username   = "[email protected]";
  31.   $mail->Password   = "***";        
  32.  
  33.   $mail->AddReplyTo('[email protected]', 'oscar');
  34.   foreach($_POST['opciones'] as $destinatarios) {
  35.  
  36.       $mail->addAddress($destinatarios);
  37.  
  38.       $mail->addBcc($destinatarios);
  39. }
  40.   $mail->SetFrom('[email protected]', 'oscar');
  41.  
  42.   $mail->Subject = 'prueba';
  43.   $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  44.   $mail->MsgHTML("
  45. Estimado Usuario:<br />
  46. <br /><table width='36%' border='1' cellpadding='0' cellspacing='0' bordercolor='#E0ECFF' class='Estilo1'>
  47. <tr>
  48. <td colspan='2' bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='center'><strong>Actividad</strong></div></td>
  49. </tr>
  50. <tr align='center'>
  51. <td width='102' bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Evento</strong></div></td>
  52. <td width='289' bordercolor='#E0ECFF' bgcolor'#FFFFFF'>""</td>
  53. </tr>
  54. <tr align='center'>
  55.  <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Hora Inicio</strong></div></td>
  56.  <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>""</td>
  57.  </tr>
  58. <tr align='center'>
  59.  <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Hora Fin</strong></div></td>
  60.  <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>""</td>
  61.  </tr>
  62. </table>");
  63. $mail->Send();
  #28 (permalink)  
Antiguo 25/04/2012, 19:02
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Envio de correo a varios destinatarios con phpMailer

Un consejo, siempre que no sepas donde esta el error, o que esta pasando realmente o cualquier detalle que funcione distinto a como lo deseas:

Depuralo.

Ahora con eso de depurar, te preguntaras que es?, pues con una simple busqueda lo encuentras en la primera pagina de google.

Trata de localizar si el error es en el lado del cliente o en el lado del servidor. Puedes empezar en el cliente, si desconoces como depurar, usa en cada linea de tu javascript un alert y ve analizando. Y luego si el lado del cliente esta bien, entonces luego depura en el servidor, si no sabes como depurar en el servidor puedes usar en cada linea del PHP un die() o sino un var_dump(). Ahora como usar un die o un var_dump en www.php.net esta la solucion.

Vamos amigo, no te rindas.

Saludos
__________________
.: Gildus :.
  #29 (permalink)  
Antiguo 26/04/2012, 23:00
 
Fecha de Ingreso: septiembre-2010
Mensajes: 1.853
Antigüedad: 13 años, 7 meses
Puntos: 6
Respuesta: Envio de correo a varios destinatarios con phpMailer

siguiendo el consejo de gildus

realice una depuracion

al lado del cliente donde envio los datos coloque un alert para saber que estoy enviando
en este me doy cuenta que estoy enviando las direcciones de los destinatarios un array,
envio sin problemas
Código Javascript:
Ver original
  1. $.ajax({
  2.                         url:'recibio.php',
  3.                         type:'post',
  4.                         data: 'opciones='+arrayOpt,
  5.                         success: function(datos) {
  6.                                             alert (arrayOpt);}
  7.                     });

en la parte de servidor si estoy recibiendo y para comprobar estoy enviando a base de datos y la inserccion se realiza satisfactoriamente,

Código PHP:
Ver original
  1. $destinatarios = $_POST["opciones"];
  2. echo implode(",", $destinatarios);
  3. $servidor = 'localhost';
  4. $bd = 'insert';
  5. $usuario = 'postgres';
  6. $contrasenia = 'hoe798cs';
  7.    
  8. global $servidor, $bd, $usuario, $contrasenia;
  9. $db = new PDO('pgsql:host=' . $servidor . ';dbname=' . $bd, $usuario, $contrasenia);
  10.  
  11.  
  12. $consulta = $db->prepare("INSERT INTO ensayo (id,nombre,destinatarios)
  13.                                  VALUES (nextval('ensayo_id_seq'),'".Montes1."','$destinatarios')");
  14. $consulta->execute();


pero a la hora de enviar el correo este no se envia

este es el codigo que estoy utilizando

Código PHP:
Ver original
  1. require_once('phpMailer/class.phpmailer.php');
  2. require_once("phpMailer/class.smtp.php");
  3.  
  4. $mail = new PHPMailer(true);
  5. $mail->IsSMTP();
  6. $mail->Host       = "smtp.live.com";
  7. $mail->SMTPDebug  = 2;                  
  8. $mail->SMTPAuth   = true;                
  9. $mail->SMTPSecure = "tls";
  10. $mail->Port       = 25;                  
  11. $mail->Username   = "[email protected]";
  12. $mail->Password   = "****";        
  13. foreach($_POST["opciones"] as $destinatarios) {
  14. $mail->addAddress($destinatarios);
  15. $mail->addBcc($destinatarios);
  16. }
  17. $mail->SetFrom('[email protected]', 'oscar');
  18. $mail->Subject = 'prueba';
  19. $mail->AltBody = 'To view the message, please use an HTML compatible email viewer!'; // optional - MsgHTML will create an alternate automatically
  20. $mail->MsgHTML("
  21. Estimado Usuario:<br />
  22. <br /><table width='36%' border='1' cellpadding='0' cellspacing='0' bordercolor='#E0ECFF' class='Estilo1'>
  23. <tr>
  24. <td colspan='2' bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='center'><strong>Actividad</strong></div></td>
  25. </tr>
  26. <tr align='center'>
  27. <td width='102' bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Evento</strong></div></td>
  28. <td width='289' bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".montes."</td>
  29. </tr>
  30. <tr align='center'>
  31.  <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Hora Inicio</strong></div></td>
  32.  <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".montes."</td>
  33.  </tr>
  34. <tr align='center'>
  35.  <td bordercolor='#E0ECFF' bgcolor='#FFFFFF'><div align='left'><strong>Hora Fin</strong></div></td>
  36.  <td bordercolor='#E0ECFF' bgcolor'#FFFFFF'>".montes."</td>
  37.  </tr>
  38. </table>");
  39.   $mail->Send();

que estoy haciendo mal?
  #30 (permalink)  
Antiguo 27/04/2012, 20:02
Avatar de gildus  
Fecha de Ingreso: agosto-2003
Mensajes: 1.495
Antigüedad: 20 años, 8 meses
Puntos: 105
Respuesta: Envio de correo a varios destinatarios con phpMailer

Pues para empezar el codigo que copeastes esta mal o incompleto:

Código PHP:
Ver original
  1. ...
  2. ...
  3. ...
  4. </table>");
  5.  $mail->Send();


Ya ailastes el problema y tu mismo te das cuenta que el error esta en el envio, pues ahora solo te falta seguir depurando paso a paso la clase phpMailer o los pasos que realizas en el envio.

Sigue depurandolo y encontraras el error.

Saludos
__________________
.: Gildus :.

Etiquetas: correo, formulario, html, phpmailer, sql, usuarios
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 07:42.