Foros del Web » Programando para Internet » PHP »

[DUDA] Adjuntar Archivos a mail form

Estas en el tema de [DUDA] Adjuntar Archivos a mail form en el foro de PHP en Foros del Web. Saludos, tengo un formulario de envio de e-mail desde la web y necesito q envie este pueda adjuntar archivos PDF, Doc o PPT para poder ...
  #1 (permalink)  
Antiguo 27/03/2008, 09:38
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Pregunta [DUDA] Adjuntar Archivos a mail form

Saludos,
tengo un formulario de envio de e-mail desde la web y necesito q envie este pueda adjuntar archivos PDF, Doc o PPT para poder recibir resumenes curriculares via mail..
Alguien me podria decir como??
saludos y gracias de antemano.
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #2 (permalink)  
Antiguo 27/03/2008, 09:42
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: [DUDA] Adjuntar Archivos a mail form

Hola T4keOveR,

Usa la clase PHPMailer y con el metodo ->addFile podras adjuntar un archivo.

Saludos.
  #3 (permalink)  
Antiguo 27/03/2008, 10:01
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Re: [DUDA] Adjuntar Archivos a mail form

Gracias Gator
Una pregunta saque este codigo de aqui mismo del foro... Ahora bien... donde debo establecer el cuerpo del mensaje???.. el contenido??? pq veo varias variables $message
Código PHP:
<?
if ($_SERVER['REQUEST_METHOD']=="POST"){

   
// we'll begin by assigning the To address and message subject
   
$to="[email protected]";
   
$subject="archivos adjuntos";

   
// get the sender's name and email address
   // we'll just plug them a variable to be used later
   
$from stripslashes($_POST['nombre'])." ".stripslashes($_POST['apelli'])."<".stripslashes($_POST['email']).">";

   
// generate a random string to be used as the boundary marker
   
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";

   
// now we'll build the message headers
   
$headers "From: $from\n" .
   
"MIME-Version: 1.0 \n" .
      
"Content-Type: multipart/mixed;\n" .
      
" boundary=\"{$mime_boundary}\"";

   
// here, we'll start the message body.
   // this is the text that will be displayed
   // in the e-mail

    
$message"";


   
// next, we'll build the invisible portion of the message body
   // note that we insert two dashes in front of the MIME boundary 
   // when we use it
   
$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";
   
$message ="";


   
// now we'll process our uploaded files
   
foreach($_FILES as $userfile){
      
// store the file information to variables for easier access
      
$tmp_name $userfile['tmp_name'];
      
$type $userfile['type'];
      
$name $userfile['name'];
      
$size $userfile['size'];

      
// if the upload succeded, the file will exist
      
if (file_exists($tmp_name)){

         
// check to make sure that it is an uploaded file and not a system file
         
if(is_uploaded_file($tmp_name)){
     
            
// open the file for a binary read
            
$file fopen($tmp_name,'rb');

            
// read the file content into a variable
            
$data fread($file,filesize($tmp_name));


            
// close the file
            
fclose($file);
     
            
// now we encode it and split it into acceptable length lines
            
$data chunk_split(base64_encode($data));
         }
     
         
// now we'll insert a boundary to indicate we're starting the attachment
         // we have to specify the content type, file name, and disposition as
         // an attachment, then add the file content.
         // NOTE: we don't set another boundary to indicate that the end of the 
         // file has been reached here. we only want one boundary between each file
         // we'll add the final one after the loop finishes.
         
$message .= "--{$mime_boundary}\n" .
            
"Content-Type: {$type};\n" .
            
" name=\"{$name}\"\n" .
            
"Content-Disposition: attachment;\n" .
            
//" filename=\"{$fileatt_name}\"\n" .
            
" filename=\"{$name}\"\n" .
            
"Content-Transfer-Encoding: base64\n\n" .
         
$data "\n\n";
      }
   }
   
// here's our closing mime boundary that indicates the last of the message
   
$message.="--{$mime_boundary}--\n";
   
// now we just send the message
   
if (@mail($to$subject$message$headers))
      echo 
'éxito';
   else
      echo 
'fracaso';
}  
?>
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #4 (permalink)  
Antiguo 27/03/2008, 10:05
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: [DUDA] Adjuntar Archivos a mail form

Donde dice:
Código PHP:
// here, we'll start the message body.
   // this is the text that will be displayed
   // in the e-mail 
Ahí pones el contenido del mensaje en la variable $message..

Saludos.
  #5 (permalink)  
Antiguo 27/03/2008, 10:37
Avatar de T4ke0veR  
Fecha de Ingreso: agosto-2007
Ubicación: Quito - Ecuador
Mensajes: 1.720
Antigüedad: 17 años, 3 meses
Puntos: 28
Re: [DUDA] Adjuntar Archivos a mail form

ok listo... y la variable donde subo el archivo q nombre debe llevar?

Código PHP:
<p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p
__________________
Diseño gráfico, Web, imagen corporativa, publicidad ...
  #6 (permalink)  
Antiguo 27/03/2008, 12:03
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Re: [DUDA] Adjuntar Archivos a mail form

No importa el nombre ya que en el foreach cicla todos los archivos que encuentre en el super arreglo $_FILES.

Saludos.
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 21:38.