Foros del Web » Programando para Internet » PHP »

Como enviar un archivo adjunto

Estas en el tema de Como enviar un archivo adjunto en el foro de PHP en Foros del Web. El motivo de mi cosulta es por lo que dice el titulo, ya consegui enviar un mail con una imagen que esta en un servidor ...
  #1 (permalink)  
Antiguo 22/06/2011, 16:33
 
Fecha de Ingreso: diciembre-2010
Mensajes: 87
Antigüedad: 13 años, 3 meses
Puntos: 2
Como enviar un archivo adjunto

El motivo de mi cosulta es por lo que dice el titulo, ya consegui enviar un mail con una imagen que esta en un servidor publico para que la puedan ver los usuarios cuando les llega el correo este es el codigo:

Código PHP:
Ver original
  1. $destinatario = '[email protected]';
  2. $asunto = 'Envio de mail';
  3. $cuerpo = '
  4. <html>
  5. <head>
  6.   <title>ENVIO DE MAIL POR PHP</title>
  7. </head>
  8. <body>
  9. <center>
  10. <div align="center">
  11. <h1>ENVIO DE MAIL POR PHP</h1><br/>
  12.  
  13. <b>CON ESTE CODIGO ENVIO EMAIL CON PHP</b><br/><br/>
  14.  
  15. <img src="ruta de la imagen" width="800px" height="450px"></img><br/><br/>
  16. </div>
  17. </center>
  18. </body>
  19. </html>
  20. ';
  21.  
  22. //para el envío en formato HTML
  23. $headers = "MIME-Version: 1.0\r\n";
  24. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  25.  
  26. //dirección del remitente
  27. $headers .= "From: pepe <[email protected]>\r\n";
  28.  
  29. //dirección de respuesta, si queremos que sea distinta que la del remitente
  30. $headers .= "Reply-To: [email protected]\r\n";
  31.  
  32. mail($destinatario,$asunto,$cuerpo,$headers);

mi pregunta es ¿que modificaciones le debo hacer a mi codigo para poder enviar archivos adjuntos junto con el correo?
  #2 (permalink)  
Antiguo 22/06/2011, 16:54
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Como enviar un archivo adjunto

Primero deberías agregar esto en la cabecera:

Código PHP:
Ver original
  1. //para el envío en formato HTML
  2. $headers = "MIME-Version: 1.0\r\n";
  3. [COLOR="SeaGreen"][B]$headers .= "Content-Type: multipart/mixed;\r\n";[/B][/COLOR]
  4. $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
  5.  
  6. //dirección del remitente
  7. $headers .= "From: pepe <[email protected]>\r\n";
  8.  
  9. //dirección de respuesta, si queremos que sea distinta que la del remitente
  10. $headers .= "Reply-To: [email][email protected][/email]\r\n";

luego para agregar el archivo escribe algo así:

Código PHP:
Ver original
  1. $adj ="\r\nContent-Type: image/jpeg; name=\"mi_imagen.jpg\"\n\r";
  2. //debes cambiar el tipo de archivo segun lo que quieras poner
  3. $adj .="Content-Disposition: inline; filename=\"mi_imagen.jpg\"\n\r";
  4. $adj .="Content-Transfer-Encoding: base64\n\r";
  5.  
  6. $fp = fopen("mi_imagen.jpg", "r");
  7. //especificando la ubicación
  8. $buff = fread($fp, filesize("mi_imagen.jpg"));
  9. // esto es para asignar el tamaño
  10. fclose($fp);
  11. $adj .=chunk_split(base64_encode($buff));
  12. // esto es para que quede como archivo

Luego debes incluirlo al mensaje, por ejemplo:

Código PHP:
Ver original
  1. mail($destinatario,$asunto,$cuerpo.$adj,$headers);

------...O...------

tambien puedes usar PHPMailer y adjuntar simplemente así:

Código PHP:
Ver original
  1. $mail->AddAttachment("mi_imagen.jpg");
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D
  #3 (permalink)  
Antiguo 22/06/2011, 17:22
Avatar de masterojitos  
Fecha de Ingreso: julio-2008
Ubicación: Lima Callao Chucuito
Mensajes: 1.931
Antigüedad: 15 años, 8 meses
Puntos: 105
Respuesta: Como enviar un archivo adjunto

mas sencillo es que uses la libreria phpmailer.
En google hay muchos ejemplos de su facil uso, y aqui van 2:
http://blog.unijimpe.net/introduccion-a-phpmailer/
http://www.cristalab.com/tutoriales/...ailer-c81626l/

Suerte
__________________
Atte. MasterOjitos :ojotes:
Todo sobre Programación Web
Las ultimas tendencias en Efectos y Recursos Web: MasterOjitos Blog
  #4 (permalink)  
Antiguo 24/06/2011, 15:54
 
Fecha de Ingreso: diciembre-2010
Mensajes: 87
Antigüedad: 13 años, 3 meses
Puntos: 2
Respuesta: Como enviar un archivo adjunto

masterojitos intenté usar la libreria phpmailes y muestra los siguientes errores:
Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\xampp\htdocs\prueba\class.phpmailer.php on line 1471

Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\xampp\htdocs\prueba\class.phpmailer.php on line 1475

¿a que se debe?
  #5 (permalink)  
Antiguo 24/06/2011, 16:24
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 16 años, 1 mes
Puntos: 336
Respuesta: Como enviar un archivo adjunto

ah, si es un error de versión, a todos nos pasa, se soluciona cambiando ambas lineas así:


Código PHP:
    ini_set('magic_quotes_runtime'0); //1471

    
$data =  file_get_contents($img);

    
//fread($fp,filesize($img));
    
ini_set('magic_quotes_runtime'$tmp); //1475 
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D

Etiquetas: adjuntos
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:13.