Foros del Web » Programando para Internet » PHP »

insertar 1 imagen en funcion mail()

Estas en el tema de insertar 1 imagen en funcion mail() en el foro de PHP en Foros del Web. hola, este es mi codigo, alguien puede decirme como insertar una imagen? que falta agregar? cual es la ruta correcta ? porque en este codifo ...
  #1 (permalink)  
Antiguo 14/09/2012, 19:20
 
Fecha de Ingreso: julio-2011
Mensajes: 29
Antigüedad: 12 años, 8 meses
Puntos: 1
insertar 1 imagen en funcion mail()

hola, este es mi codigo, alguien puede decirme como insertar una imagen? que falta agregar? cual es la ruta correcta ? porque en este codifo solo adjunto 3 imagenes, pero las quiero agregar con las etiquetas <img>

es por trabajo asique me sirve TODO.

Código PHP:
Ver original
  1. <?php
  2.  
  3. // array with filenames to be sent as attachment
  4. $files = array("1.png","2.png","3.png");
  5.  
  6. // email fields: to, from, subject, and so on
  7. $from = "[email protected]";
  8. $subject ="My subject";
  9. $message = "<html><head></head><body>";
  10. $message .= "<img src='1.png' alt='' /></body></html>";
  11. $headers = "From: $from";
  12.  
  13. // boundary
  14. $semi_rand = md5(time());
  15. $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
  16.  
  17. // headers for attachment
  18. $headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\"{$mime_boundary}\"";
  19.  
  20. // multipart boundary
  21. $message = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
  22. $message .= "--{$mime_boundary}\n";
  23.  
  24. // preparing attachments
  25. for($x=0;$x<count($files);$x++){
  26.     $file = fopen($files[$x],"rb");
  27.     $data = fread($file,filesize($files[$x]));
  28.     fclose($file);
  29.     $data = chunk_split(base64_encode($data));
  30.     $message .= "Content-Type: {\"application/octet-stream\"};\n" . " name=\"$files[$x]\"\n" .
  31.     "Content-Disposition: attachment;\n" . " filename=\"$files[$x]\"\n" .
  32.     "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
  33.     $message .= "--{$mime_boundary}\n";
  34. }
  35.  
  36. // send
  37.  
  38. $ok = @mail($to, $subject, $message, $headers);
  39. if ($ok) {
  40.     echo "<p>mail sent to $to!</p>";
  41. } else {
  42.     echo "<p>mail could not be sent!</p>";
  43. }
  44.  
  45. ?>

Última edición por el_entrepreneur; 14/09/2012 a las 19:22 Razón: me olvidede algo
  #2 (permalink)  
Antiguo 14/09/2012, 20:56
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: insertar 1 imagen en funcion mail()

Si quieres aprender podrías usar PHPMailer para que veas como logran el mostrar una imagen.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 15/09/2012, 00:18
 
Fecha de Ingreso: mayo-2006
Mensajes: 475
Antigüedad: 17 años, 11 meses
Puntos: 58
Respuesta: insertar 1 imagen en funcion mail()

Para enviar un mail con una imagen (tipo cabecera o similar) tienes que poner la ruta absoluta:
Código PHP:
Ver original
  1. $message .= "<img src='http://www.midominio.com/imagenes/1.png' alt='' /></body></html>";
  #4 (permalink)  
Antiguo 15/09/2012, 06:49
 
Fecha de Ingreso: octubre-2010
Ubicación: Madrid
Mensajes: 295
Antigüedad: 13 años, 6 meses
Puntos: 12
Respuesta: insertar 1 imagen en funcion mail()

@jossss tiene razón es con la ruta absoluta. Tienes que guardar la imagen en el servidor FTP de tu página web, y luego poner la ruta completa a la imagen
  #5 (permalink)  
Antiguo 15/09/2012, 11:36
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 11 meses
Puntos: 1517
Respuesta: insertar 1 imagen en funcion mail()

No es necesario guardar la imagen en el servidor. Se puede lograr enviar la imagen atachada al texto también. Solo es cuestión de guardar el binario de la imagen en el texto e indicar que tipo es con encabezados. Pero si lo deseas puedes hacer lo que te indicaron de guardarlo en el servidor. Por eso te indiqué que leyeras como PHPMailer lo hace para que puedas lograrlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos

Etiquetas: funcion, html
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 09:12.