Foros del Web » Programando para Internet » PHP »

Enviar email con archivo adjunto

Estas en el tema de Enviar email con archivo adjunto en el foro de PHP en Foros del Web. Hola a todos, necesito que desde la web se pueda enviar un email con un archivo adjunto, y mirando aquí y en otros foros no ...
  #1 (permalink)  
Antiguo 05/04/2010, 12:39
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años, 1 mes
Puntos: 0
Enviar email con archivo adjunto

Hola a todos,

necesito que desde la web se pueda enviar un email con un archivo adjunto, y mirando aquí y en otros foros no he encontrado una opción correcta, en muchos sitios dan como opción usar PHPMailer y por lo que he visto hay que dar permisos y la verdad al ser una web publica que puede usar cualquiera no entiendo lo de dar permisos.

Aquí pongo el codigo que estoy usando y que no funciona:

<?php

$headers = 'From: ' .$_POST['miemail']. " \r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed";

$destinatario = $_POST['para'];

$asunto = $_POST['asunto'];

if ($_POST['asunto'] != "" AND $_POST['para'] != "" AND $_POST['mensaje'] != "")
{
$cuerpo = $_POST['mensaje']. " \r\n";
$cuerpo .= "Content-Type: text/plain";

$archivo = file_get_contents(.$_POST['oferta'}.);
$archivo = chunk_split( base64_encode($archivo) );

// Adjuntar el fichero
$adjunto .= "Content-type: Binary; name=".$archivo."\n";
$adjunto .= "Content-Transfer-Encoding: BASE64\n";
$adjunto .= "Content-disposition: attachment; filename=".$archivo."\n\n";
$adjunto .= "$buffer\n";

mail($destinatario,$asunto,utf8_decode($cuerpo),ad junto,$headers);

echo ' - Formulario enviado, Gracias por utilizar Avyom.es - ';

}
else
{
echo ' - Ha quedado sin rellenar alguno de los campos obligatorios. - ';
}

?>
  #2 (permalink)  
Antiguo 05/04/2010, 13:05
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Enviar email con archivo adjunto

lo único que necesitas es tener permisos de lectura al archivo en cuestión, phpmailer facilita mucho la tarea de incluir archivos.
  #3 (permalink)  
Antiguo 05/04/2010, 13:14
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Enviar email con archivo adjunto

yo la única linea que si veo muy mal es esta...
Código PHP:
// MAL
$archivo file_get_contents(.$_POST['oferta'}.);

// BIEN
$archivo file_get_contents($_POST['oferta']); 
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #4 (permalink)  
Antiguo 06/04/2010, 05:29
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Enviar email con archivo adjunto

Gracias por vuestras respuestas,

si puedo evitar phpmailer lo prefiero, maycolalvarez

ya corregí el error sintactico pateketrueke, y si que me envia el correo y tambien me añade un archivo adjunto, pero me añade un archivo de tipo desconocido que no tiene ni siquiera el nombre del archivo adjunto y tampoco el tamaño.

Creo que estoy cerca pero algo falla, si alguien ve en donde esta el fallo que por favor me lo indique.

Un saludo.
  #5 (permalink)  
Antiguo 06/04/2010, 08:51
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Enviar email con archivo adjunto

En tus cabeceras tienes que indicar todo eso, el tipo de archivo, el nombre del archivo, etc. Es por eso que es más recomendable usar PHPMailer porque hace eso por ti.

Saludos.

Etiquetas: email, enviar, 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 23:52.