Foros del Web » Programando para Internet » PHP »

Problema al querer enviar email con archivo adjunto

Estas en el tema de Problema al querer enviar email con archivo adjunto en el foro de PHP en Foros del Web. Buenas a todos, El problema que tengo es al querer enviar un mail con un archivo adjunto *.txt con la función mail(). He estado averiguando ...
  #1 (permalink)  
Antiguo 21/03/2011, 08:02
 
Fecha de Ingreso: mayo-2010
Mensajes: 84
Antigüedad: 13 años, 10 meses
Puntos: 6
Problema al querer enviar email con archivo adjunto

Buenas a todos,

El problema que tengo es al querer enviar un mail con un archivo adjunto *.txt con la función mail().
He estado averiguando en muchos sitios, he cogido los ejemplos y no he logrado hacerlo y quisiera saber dónde estoy fallando.
Un correo con un Content-Type: text/html lo envio correctamente, no me da problemas.
El inconveniente es al querer enviar un correo Content-Type: multipart/mixed (html con un adjunto).

El código php es el siguiente:

Código PHP:
            $filename getcwd() . "/docs/peluqueria.txt";
            
$fh fopen($filename"r");
            
$filecont fread($fhfilesize($filename));
            
fclose($fh);
            
$fileencode chunk_split(base64_encode($filecont));

            
//ini_set("SMTP", "smtpout.secureserver.net");
            
$recepient "[email protected]";
            
$subject "Tienes un nuevo mensaje de CCDIMAGEN";      
            
$header "From: [email protected]\n";
            
$header .= "MIME-Version: 1.0\n";
            
$header .= "Content-Type: multipart/mixed; boundary=\"--separator--\"\n\n";
            
            
$body "--separator--\n";
            
$body .= "Content-Type: text/html; charset=us-ascii\n";
            
$body .= "Content-Transfer-Encoding: 7bit\n";
            
$body .= "
            <html>
            <h1>Tienes una nueva consulta de: </h1>
            <p><b>Nombre :</b> $name</p>
            <p><b>Email :</b> $email</p>
            <p><b>Mensaje :</b> $message</p>            
            </html>"
;
            
$body .= "\n\n--separator--\n";
            
$body .= "Content-Type: octet-stream; name=\"peluqueria.txt\"\n";
            
$body .= "Content-Disposition: attachment; filename=\"peluqueria.txt\"\n";
            
$body .= "Content-Transfer-Encoding: base64\n";
            
$body .= $fileencode;
            
$body .= "\n\n--separator--\n";
     

            if(
mail($recepient$subject$body$header))
               echo 
"Se envio email correctamente  ";
            else
               echo 
"No se envio el mail";
            
//header("Location: index.html"); 

Y el resultado es:

--separator--
Content-Type: text/html; charset=us-ascii
Content-Transfer-Encoding: 7bit

<html><h1>Tienes una nueva consulta de: </h1><p><b>Nombre :</b> prueba</p><p><b>Email :</b> [email protected]</p><p><b>Mensaje :</b> Hola</p> </html>

--separator--
Content-Type: octet-stream; name="peluqueria.txt"Content-Disposition: attachment; filename="peluqueria.txt"Content-Transfer-Encoding: base64

77u/Q29ydGUNCk9uZHVsYWNpb25lcywgTGFjZWFkb3MNClRpbnRlcy wgTWVjaGFzLCBJbHVtaW5hY2nDs24NCkV4dGVuc2lvbmVzIGRl IENhYmVsbG8NClRyYXRhbWllbnRvcyBDYXBpbGFyZXMNCk1hbm ljdXJlIHkgUGVkaWN1cmUsIFNpbXBsZSwgY29uIERpc2XDsW8s IFBhcmFmaW5hIG8gU3BhDQpFeHRyYWNjacOzbiBkZSB1w7Flcm 9zDQpQZXN0YcOxYXMgMSB4IDENCkRlcGlsYWNpw7NuDQpVw7Fh cyBkZSBnZWwsIEFjcmlnZWwNCkxhY2VhZG8gYnJhc2lsZXJv

--separator--

----separator----

A ver si alguien puede darme alguna explicación por favor, gracias.
  #2 (permalink)  
Antiguo 21/03/2011, 11:24
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: Problema al querer enviar email con archivo adjunto

¿no te resultaría más simple usar una clase como swiftmailer o phpmailer?
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 21/03/2011, 13:09
Avatar de ArkangelGammar  
Fecha de Ingreso: enero-2011
Ubicación: <?php $persona->ubicacion('ArkangelGammar'); ?>
Mensajes: 179
Antigüedad: 13 años, 3 meses
Puntos: 19
Respuesta: Problema al querer enviar email con archivo adjunto

Estoy de acuerdo con maycolalvarez, es mas secillo utilizar phpmailer.

Saludos
__________________
"No entiendes algo al menos que seas capaz de explicarselo a tu abuela.
Cada dia sabemos mas....y entendemos menos...."

A. Einstein - Genio mas alla de la razon.
  #4 (permalink)  
Antiguo 21/03/2011, 15:18
 
Fecha de Ingreso: mayo-2010
Mensajes: 84
Antigüedad: 13 años, 10 meses
Puntos: 6
Respuesta: Problema al querer enviar email con archivo adjunto

Hola, gracias por responder chavales,
No es por usar phpmailer y alguna clase prediseñada, es porque quiere ver el comportamiento del script.
He leido ejemplos y formas de cómo enviar un html con un adjunto y no he tenido forma de hacerlo, como repito enviando un html si puedo pero un correo mixto no puedo.
No veo dónde he podido meter la pata.
Espero aclararlo para estar tranquilo, :D.
Un saludo.

Etiquetas: email, 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.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:45.