Ver Mensaje Individual
  #6 (permalink)  
Antiguo 22/07/2014, 16:54
iggytosan
 
Fecha de Ingreso: abril-2008
Mensajes: 29
Antigüedad: 16 años
Puntos: 0
Respuesta: enviar un FORM a destinatarios de una DB

Hola

He logrado enviar adjuntos a direcciones que están en una DB MySQL
He logrado que sean BCC

No pude lograr:

Que en el while de envio no repita direcciones
cerrar la DB al terminar donde lo ponga siempre da error

Gracias si alguien me puede ayudar en lo que no logro

Código PHP:
Ver original
  1. <?php
  2. /*
  3. este formulario utiliza la clase PHPMailer para el envio y proceso.
  4. Es solo un ejemplo de una posible implementacion de PHPMailer
  5. La clase se puede descargar desde http://phpmailer.sourceforge.net/
  6. Junto con mas ejemplos y documentacion.
  7. */
  8.  
  9. /*
  10. NOTA:
  11. este archivo debe estar acompañado de una carpeta
  12. con el nombre "archivos" en donde se copiaran los
  13. archivos. Esta carpeta debe tener chmod 777.
  14. */
  15.  
  16. //CONFIGURACION
  17. $direccion_envio='@gmail.com';                      //la direccion a la que se enviara el email.
  18. $url='http://www..com.ar/cias/archivos';        //la URL donde esta publicado el formulario. SIN la barra al final
  19.  
  20. //FIN CONFIGURACION
  21. ?>
  22.  
  23.  
  24. <?php
  25. //proceso del formulario
  26. // si existe enviar...
  27. if (isset ($_POST['enviar'])) {
  28.  
  29. //vamos a hacer uso de la clase phpmailer,
  30. require("class.phpmailer.php");
  31.  
  32. $mail = new PHPMailer();
  33.  
  34. //recogemos las variables y configuramos PHPMailer
  35. $mail->From = $_POST['email'];
  36. $mail->FromName = $_POST['nombre'];
  37. $mail->AddAddress($direccion_envio);
  38. $mail->Subject = "asunto";
  39. $mail->AddReplyTo($_POST['email'],$_POST['nombre']);
  40. $mail->IsHTML(true);                              
  41. $comentario=$_POST['comentario'];
  42.  
  43. //comprobamos si se adjunto un archivo, y si su tamano es menor al permitido
  44. if (isset($_FILES['archivo']['tmp_name']) && ($_FILES['archivo']['tmp_name']!="") ) {
  45.     $aleatorio = rand();
  46.     $nuevonombre=$aleatorio.'-'.$_FILES['archivo']['name'];
  47.     // copiamos el archivo en el servidor
  48.     copy($_FILES['archivo']['tmp_name'],'archivos/'.$nuevonombre);
  49.     $conarchivo = "Su archivo ha sido adjuntado con &eacute;xito<br />";
  50. }
  51.  
  52.  
  53. //armamos el html
  54. $contenido = '<html><body>';
  55. $contenido .= '<h2>' .$_POST['titulo'] .'</h2>';
  56. $contenido .= '<p>Enviado el '.date("d M Y").'</p>';
  57. $contenido .= '<hr />';
  58. //$contenido .= '<p>Nombre: <strong>'.$_POST['nombre'].'</strong>';
  59. //$contenido .= '<p>Email: <strong>'.$_POST['email'].'</strong>';
  60. if (isset($_FILES['archivo']['tmp_name'])) {
  61.     $contenido .= '<p>Archivo: <strong><a href="'.$url.'/archivos/'.$nuevonombre.'">'.$nuevonombre.'</a> (formato:'.$ext.' - '.$tamano.' bytes)</strong>';
  62. }
  63. $contenido .= '<p>Mensaje: <strong>'.$comentario.'</strong>';
  64. $contenido .= '<hr />';
  65. $contenido .= '</body></html>';
  66.  
  67. $mail->Body    = $contenido;
  68. $mail->AddAttachment('archivos/'.$nuevonombre.'', $nuevonombre);  // optional name
  69. //  enviamos el mail
  70.  
  71.  $conectar=mysql_connect('localhost','correo','********') or die('No se puedo conectar con la base de datos!');
  72.  
  73.    mysql_select_db('correo',$conectar);
  74.    
  75.   $basededatos = "select email from cf ";
  76.   $resultado = mysql_query($basededatos,$conectar) or die(mysql_error());
  77.   //coloca en resultados cada contenido de la línea de la columna email de la tabla cf
  78.  
  79. while ($filas = mysql_fetch_array($resultado)) {
  80. $email = $filas['email'];
  81. // acá se supone que envia un mail con CO hasta que se acaba, pero me envía repetidos (hasta 3 mails a la misma dirección)
  82. $mail->AddBcc($email);
  83. $mail->Send();
  84.  
  85.  
  86. }
  87.  
  88. $flag='ok';
  89. $mensaje='<div id="ok">'.$conarchivo.'Mensaje Enviado con EXITO'.'</div>' ;
  90.  
  91. }
  92.  
  93.  
  94. ?>
  95.  
  96. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  97.     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  98. <html xmlns="http://www.w3.org/1999/xhtml">
  99.     <head>
  100.         <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  101.         <title>CIAS - Formulario de Envios</title>
  102.  
  103. <style>
  104.     body {
  105.         font: 1em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;
  106.         font-size: 76%;}
  107.        
  108.     #form {
  109.         border: 3px double #eaeaea;
  110.         background-color: #AAF;
  111.         padding: 1em;
  112.         width: 30em;
  113.         margin: auto;}
  114.  
  115.     #form h2{
  116.         font-size: 2em;
  117.         margin: 0 0 0.5em 0;
  118.         padding: 0;}
  119.  
  120.     #form .campo {
  121.         border: 1px solid #999;
  122.         padding: 0.1em;
  123.         font-size: 14px;}
  124.  
  125.     #form .error {
  126.         border: 1px solid #F00;
  127.         padding: 0.3em;
  128.         font-size: 1.5em;}
  129.  
  130.     #form .com {
  131.         border: 1px solid #999;
  132.         padding: 0.3em;
  133.         font-size: 1.5em;
  134.         width:18em;
  135.         height: 10em;
  136.         font: 1.5em Arial, Helvetica,  verdana, sans-serif;}
  137.  
  138.     #form .com-error {
  139.         border: 1px solid #F00;
  140.         padding: 0.3em;
  141.         font-size: 1.2em;
  142.         width:18em;
  143.         height: 10em;
  144.         font: 1.5em Lucida Grande, 'Trebuchet MS', verdana, sans-serif;}
  145.  
  146.     #form .boton {
  147.         border: 2px solid #999;
  148.         padding: 0.3em;
  149.         font-size: 1.2em;
  150.         width: 4em;}
  151.        
  152.     #error {
  153.         border: 1px dashed #F00;
  154.         background-color: #FFF;
  155.         padding: 5px;}
  156.  
  157.     #ok {
  158.         border: 1px dashed #060;
  159.         background-color:#FFF;
  160.         padding: 5px;}
  161.            
  162. </style>
  163.  
  164.     </head>
  165. <body>
  166.     <div id="form">
  167.        
  168.         <h2>Formulario de Envios</h2>
  169.  
  170.         <?php echo $mensaje; /*mostramos el estado de envio del form */ ?>
  171.         <?php if ($flag!='ok') { ?>
  172.         <form action="<?php echo $PHP_SELF;?>" method="post" enctype="multipart/form-data">
  173.             <p>Título <br />
  174.             <input name="titulo" type="text" class="campo" size="50" /></p>
  175.    
  176.             <p>Email <br />
  177.             <input name="email" type="text" class="campo" value="[email protected]" readonly="readonly" /></p>
  178.  
  179.  
  180.             <p>Subir Archivo<br />(Formatos permitidos: .todos) <br />
  181.             <input type="file" name="archivo" class="campo" /></p>
  182.        
  183.             <p>Comentario <br />
  184.             <textarea name="comentario" class="com"></textarea></p>
  185.            
  186.             <input name="nombre" type="hidden" value="Popurri" />
  187.             <p><input class="boton" type="submit" name="enviar" value="enviar" /></p>
  188.         </form>
  189.         <?php } ?>
  190.     </div> <!-- end form-->
  191.    
  192. </body>
  193. </html>