Ver Mensaje Individual
  #22 (permalink)  
Antiguo 04/08/2011, 12:19
ganir22
 
Fecha de Ingreso: julio-2011
Mensajes: 4
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Tengo 1script de formulario para enviar email q va perfecto xro me faltan

Aqui te vá un código, para que envíes un archivo adjunto por email:

Código PHP:
<?php 
extract
($_POST); //Extrae todas las variales enviadas por POST esto nos ayuda a usar p.e. $nombre en vez de usar $_POST['nombre']
?>
<html>
<head>
<title>Enviar archivo adjunto por email</title>
</head>

<body>
<?php
if ($_POST) {
    
/* Datos de Envio */
    
$para"[email protected]"// email a donde se enviará los datos del formulario
    
$asunto="$subject MENSAJE CON ARCHIVO ADJUNTO";
    
$desde stripslashes($_POST['nombre'])."<".stripslashes($_POST['email']).">";
    
$mensaje "<div>
                  <p>Nombre: $nombre</p>
                  <p>Email: $email</p>
                </div>"
;
    
/* generar una cadena aleatoria que se utiliza como marcador de límite */
   
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x"//Este se utilizará al construir las cabaceras y cuerpo del mensaje
   /* almacenar la información del archivo en variables para un acceso más fácil */
   
$tmp_name $_FILES['attach']['tmp_name']; //Nombre temporal del archivo
   
$type $_FILES['attach']['type']; //Tipo de formato del archivo
   
$name $_FILES['attach']['name']; //Nombre del archivo
   
$size $_FILES['attach']['size']; //Tamaño del archivo
   
   
   
$message $mensaje// coloco en una variable los datos del mensaje;

   /* si el archivo existe, la carga tuvo éxito  */
   
if (file_exists($tmp_name)){
      
// asegura de que se trata de un archivo cargado y no un archivo de sistema
      
if(is_uploaded_file($tmp_name)){
         
// abre el archivo para una lectura binaria
         
$file fopen($tmp_name,'rb');
         
// leer el contenido del archivo en una variable
         
$data fread($file,filesize($tmp_name));
         
// cierra el archivo
         
fclose($file);
         
// ahora tenemos que codificar
         
$data chunk_split(base64_encode($data));
      }
    
   }

      
/* Ahora vamos a construir las cabeceras del mensaje */
      
$headers "From: $desde\r\n" .
         
"MIME-Version: 1.0\r\n" .
         
"Content-Type: multipart/mixed;\r\n" .
         
" boundary=\"{$mime_boundary}\"";

      
/* vamos a construir el cuerpo del mensaje */
      
$message "This is a multi-part message in MIME format.\n\n" .
         
"--{$mime_boundary}\n" .
         
//"Content-Type: text/plain; charset=\"iso-8859-1\"\n" . /* Si deseamos enviar el mensaje como texto plano utilizamos esta linea*/
         
"Content-type: text/html; charset=iso-8859-1\r\n" .
         
"Content-Transfer-Encoding: 7bit\n\n" .
         
$message "\n\n";

      
// ahora vamos a introducir un límite para indicar que estamos empezando el archivo adjunto
      // tenemos que especificar el tipo de contenido, el nombre del archivo y la disposición como
      // un archivo adjunto, a continuación, añadir el contenido del archivo y establecer otro límite que
      // indica que el final del archivo se ha alcanzado
      
$message .= "--{$mime_boundary}\n" .
         
"Content-Type: {$type};\n" .
         
" name=\"{$name}\"\n" .
         
//"Content-Disposition: attachment;\n" .
         //" filename=\"{$fileatt_name}\"\n" .
         
"Content-Transfer-Encoding: base64\n\n" .
         
$data "\n\n" .
         
"--{$mime_boundary}--\n";

      
// Ahora enviamos el mensaje
      
if (@mail($para$asunto$message$headers))  {
          echo 
'<div style="padding:7px;color:#0000FF">Mensaje enviado correctamente</div>';
      }else{
          echo 
'<div style="padding:7px;color:#FF0000;">ERROR: El mensaje No se pudo enviar</div>';
      }
}
?>
<form id="form1" name="form1" method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>" enctype="multipart/form-data">
  <div>Archivo adjunto: 
    <input name="attach" type="file" id="attach" />
  </div>
  <div>Nombre: 
    <input type="text" name="nombre" />
  </div>
  <div>Email: 
    <input type="text" name="email" />
  </div>
  <div><input type="submit" name="Submit" value="Enviar"></div>
</form>
</body>
</html>
Espero te sirva.
Saludos.

Última edición por GatorV; 04/08/2011 a las 13:39