Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/07/2010, 03:08
LOCAMATO
 
Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 9 años, 10 meses
Puntos: 0
adjuntos en cuerpo de mensaje como texto

Tengo el siguiente archivo php para enviar los datos de un formulario con adjuntos por email. Pero lo que me gustaría es que en el cuerpo del mensaje apareciese una lista de los archivos adjuntos.

Gracias por vuestra ayuda.

Código PHP:
<?php

    
    
function form_mail($sPara$sAsunto$sTexto$sDe)
    {
    
        
$bHayFicheros 0;
        
$sCabeceraTexto "";
        
$sAdjuntos "";
        
$sCuerpo $sTexto;
        
$sSeparador uniqid("_Separador-de-datos_");
        
        
$sCabeceras "MIME-version: 1.0\n";
        
        
// Recogemos los campos del formulario
        
foreach ($_POST as $sNombre => $sValor)
            
$sCuerpo $sCuerpo."\n".$sNombre." = ".$sValor;
            
        
// Recorremos los Ficheros
        
foreach ($_FILES as $vAdjunto)
        {
            
            if (
$bHayFicheros == 0)
            {
                
                
// Hay ficheros
                
                
$bHayFicheros 1;
                
                
// Cabeceras generales del mail
                
$sCabeceras .= "Content-type: multipart/mixed;";
                
$sCabeceras .= "boundary=\"".$sSeparador."\"\n";
                
                
// Cabeceras del texto
                
$sCabeceraTexto "--".$sSeparador."\n";
                
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
                
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n\n";
                
                
$sCuerpo $sCabeceraTexto.$sCuerpo;
                
            }
            
            
// Se añade el fichero
            
if ($vAdjunto["size"] > 0)
            {
                
$sAdjuntos .= "\n\n--".$sSeparador."\n";
                
$sAdjuntos .= "Content-type: ".$vAdjunto["type"].";name=\"".$vAdjunto["name"]."\"\n";
                
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
                
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$vAdjunto["name"]."\"\n\n";                 
                
                
$oFichero fopen($vAdjunto["tmp_name"], 'r');
                
$sContenido fread($oFicherofilesize($vAdjunto["tmp_name"]));
                
$sAdjuntos .= chunk_split(base64_encode($sContenido));
                
fclose($oFichero);
            }
            
        }
        
        
// Si hay ficheros se añaden al cuerpo
        
if ($bHayFicheros)
            
$sCuerpo .= $sAdjuntos."\n\n--".$sSeparador."--\n";
        
        
// Se añade la cabecera de destinatario
        
if ($sDe)$sCabeceras .= "From:".$sDe."\n";
        
        
// Por último se envia el mail
        
return(mail($sPara$sAsunto$sCuerpo$sCabeceras));
    }
        
        
//Ejemplo de como usar:
        
if (form_mail("[email protected]",
                                    
"Activación de formulario",
                                    
"Los datos introducidos en el formulario son:\n",
                                    
"[email protected]"))
            echo 
"Su formulario ha sido enviado con exito";

?>