Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/03/2014, 20:28
raulgranadosraul
 
Fecha de Ingreso: julio-2013
Mensajes: 174
Antigüedad: 11 años, 6 meses
Puntos: 1
adjuntar imagen a correo con php

Hola a todos amigos del web.

Estoy creando un email con php para enviar correos a clientes de la base de datos.
He creado un form para escribir el asunto y el mensaje, hasta ahi funciona todo bien, me gustaría añadir una imagen que seleccione de mi pc. He creado una ventana donde me selecciona la imagen y me la guarda en una carpeta en el servidor y pasa el nombre al campo que se enviará en el mail.... pero no consigo que se envíe.

Os paso los codigos a ver si me podéis echar una mano.

Este es el form para enviar el mail
Código HTML:
<form method="POST" action="correo_mas.php" name="form1" id="form1">
<p>Enviar publicidad:</p>
T&iacute;tulo :<br>
<textarea name="titulo" cols="50" rows=""></textarea>
<br>
Mensaje :<br>
<textarea name="mensaje" cols="50" rows="20"></textarea>
<br>
Imagen :<br />
<input type="text" name="imagen" value="" size="32" />
<br /><br />
<input type="button" value="Buscar imagen" onclick="javascript:subirimagenemail();" style="cursor:pointer" />
<input type="submit" value="Enviar" name="B1"></p>
</form> 
En la misma página la funcion subirimagenemail()
Código Javascript:
Ver original
  1. function subirimagenemail()
  2.     {
  3.         self.name = 'opener';
  4.         remote = open('subir_imagen_email.php','remote', 'width=400,height=150,location=no,scrollbars=yes,menubars=no,toolbars=no,resizable=yes,fullscreen=no, status=yes');
  5.         remote.focus();    
  6.         }

y en la ventana subir_imagen_email.php tengo
Código PHP:
Ver original
  1. <?php if ((isset($_POST["enviado"])) && ($_POST["enviado"] == "form1")) {
  2.     $nombre_archivo = $_FILES['userfile']['name'];
  3.     move_uploaded_file($_FILES['userfile']['tmp_name'], "../imagenes/publicidad/".$nombre_archivo);
  4. ?>
  5.     <script>
  6.     opener.document.form1.imagen.value="<?php echo $nombre_archivo; ?>";
  7.     self.close();
  8.     </script>
  9. <?php
  10. }
  11. else
  12. {?>
  13. <form action="subir_imagen_email.php" method="post" enctype="multipart/form-data" id="form1">
  14.   <p>
  15.     <input name="userfile" type="file" />
  16.   </p>
  17.   <p>
  18.     <input type="submit" name="button" id="button" value="Aceptar" alt="Aceptar" style="cursor:pointer" />
  19.   </p>
  20.     <input type="hidden" name="enviado" value="form1" />
  21. </form>
  22. <?php }?>

En la pagina correo_mas.php que es el que recoge todos los valores y los envia tengo estas linea para enviar la imagen
Código PHP:
Ver original
  1. $imagen = $_POST['imagen'];
  2. $html .= "<img src='http:www.web.es/imagenes/publicidad/". $imagen ." alt='' />

El caso es que desde la ventana para buscar la imagen me hace todo correcto, me la guarda antes de cerrarse en la carpeta que he puesto y pasa el valor del nombre al form del envío.
Pero luego no se si estoy haciendo mal la llamada o al pasar el formulario....

Estoy acostumbrado a utilizarlas en INSERT o en EDIT pero nunca he mostrado o enviado una imagen sin buscarla en la base de datos.

¿Alguna idea?
Gracias por adelantado