Comunidad de diseño web y desarrollo en internet online

Attach

Citar            
MensajeEscrito el 14 Abr 2009 06:49 pm
Hola tengo un problema con un codigo para adjuntar archivos.
es un formulario de contacto en donde se adjunta un archivo; el codigo funciona correctamente porque me envia todos los datos y me copia el archivo al servidor; el problema es que yo quiero que en el mail se adjunte el archivo; porque de otra mandera tengo que entrar al servidor para sacar el archivo de ahi....
Este es el codigo; me haria falta la parte de attach o no se bien como funciona...
gracias

Código :



<?php
//dirección a donde quieres que se mande los datos.
$recipiente = "[email protected]";


$asunto = "Asunto del Mail";

$error = 0;

//los campos mandados por el formulario
$nombre      = $_POST['nombre'];
$titulo      = $_POST['titulo'];
$telf       = $_POST['telf'];
$celu       = $_POST['celu'];
$email      = $_POST['email'];
$direccion  = $_POST['direccion'];
$localidad  = $_POST['localidad'];
$cp       = $_POST['cp'];
$FOTO=$_FILES['Foto1']['name'];
      $ArchivoTemporal=$_FILES['Foto1']['tmp_name'];
      if (is_uploaded_file($ArchivoTemporal))
         {
         copy($ArchivoTemporal,$FOTO);
         }
      else
         {
         echo ('Problemas en la recepción');
         }
$comentario   = $_POST['comentario'];
include "libmail.php";

//verificación si los campos requeridos estan llenos
if( $nombre=="" || $titulo=="" || $localidad=="" || $email=="" || $FOTO==""){
   $error=1;
}
//verificación si el email es correcto
elseif(!eregi("^[a-z0-9]+([_\\.-][a-z0-9]+)*"."@"."([a-z0-9]+([\.-][a-z0-9]+)*)+"."\\.[a-z]{2,}"."$",$email)){
   $error=2;
}

//mensajes de error
if($error==1){
   echo "El siguiente error ha ocurrido!<BR>";
   echo "No ha rellenado todos los campos obligatorios.<BR> Por favor vuelva a intentarlo. <BR>";
}

elseif($error==2){
   echo "El siguiente error ha ocurrido!<BR>";
   echo "El correo electronico es invalido!<BR> Por favor vuelva a intentarlo.<BR>";
}

//envio del email con los datos
else{
   $message .="Nombre: ".$nombre."<br>";
   $message .="Titulo: ".$titulo."<br>";
   $message .="Telefono: ".$telf."<br>";
   $message .="Tel.Celular: ".$celu."<br>";
   $message .="e-mail: ".$email."<br>";
   $message .="Direccion: ".$direccion."<br>";
   $message .="CP: ".$cp."<br>";
   $message .="Localidad: ".$localidad."<br>";
   $message .="Adjunto ".$FOTO."<br>";
   $message .="Comentario: ".$comentario."<br>";
   
   $message = stripslashes($message);
   
   $headers = "MIME-Version: 1.0\r\n";
   $headers .= "Content-type:text/html; charset=iso-8859-1\r\n";
   $headers .= "From: $email\r\n";
   $headers .= "Reply-to: $email\r\n";
   $headers .= "Cc: $email\r\n";
   $headers .= "Attach: $FOTO\r\n";
   
   
   
   
   ini_set(sendmail_from,'[email protected]');
   mail($recipiente,$asunto,$message,$headers);


   //aqui puedes modificar los mensajes
   echo "El mensaje ha sido enviado!<BR>";
   echo "Gracias por su envio.<BR>Le mandaremos una respuesta lo antes posible.<BR>";

}
?>

Por taccoli

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Abr 2009 12:57 am
A ya es que esta mal tu header

Código :

 $headers .= "Attach: $FOTO\r\n";


Prueba con esto

Código :

$header .= "Content-Type: application/octet-stream; name=\"".$FOTO."\"\r\n"; 
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$FOTO."\"\r\n\r\n";


Y te recomiendo que le eches un ojo a la clase PHPMailer es ultra facil enviar mails con esta clase, realmente me ha ayudado mucho, incluso hay un screencast de como usarlo con ejemplo para descargar en ThemeForest Blog

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox
Citar            
MensajeEscrito el 15 Abr 2009 02:32 am
muchas gracias voy a probar a ver si sale!

Por taccoli

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Abr 2009 03:00 am
DRAROCK:

Agregue las lineas como me indicaste

$headers .= "Content-Type: application/octet-stream; name=\"".$FOTO."\"\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"".$FOTO."\"\r\n\r\n";

ahora se envia un adjunto con el nombre del archivo que cargue; pero no me lo muestra.... me aparece adjunto por ejemplo el archivo perro.jpg pero no me muestra la imagen; y ahora tambien cuando llega el correo, llega sin ninguna informacion dentro... antes llegaba con este contenido y despues de los dos puntos la variable que se habia cargado....


Nombre: Lia
Titulo: dise
Telefono:
Tel.Celular:
e-mail:
Direccion:
CP:
Localidad: neuquen
Adjunto 563031226610687.jpg
Comentario:


tienes alguna idea porque o como ayudarme?

desde ya muchisimas gracias!

Por taccoli

12 de clabLevel



 

firefox
Citar            
MensajeEscrito el 15 Abr 2009 05:08 am
fijate de como funciona el mio y veras q te falta para el tuyo


http://www.codigolandia.com/art-Mail+Con+Adjunto+-+Cualquier+Archivo-php-60.tc

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 15 Abr 2009 03:12 pm
AA si tienes razon, faltan mas cositas en los headers, pero mejor mira el ejemplo de @talcual ahi esta lo que te falta ;)

Por drarock

Claber

705 de clabLevel

3 tutoriales

Genero:Femenino  

Lima, Peru

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.