Código PHP:
Ver original<?php 
// Copyright © McAnam.com 
// http://www.mcanam.com/articulos/PHP.php?id=8 
     
    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"], 'rb');              } 
             
        } 
         
        // 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: 
                                    "Activación de formulario", 
                                    "Los datos introducidos en el formulario son:\n", 
        echo "Su formulario ha sido enviado con exito"; 
         
        // Ejemplo de como usar, poniendo como remitente el campo pasado de E-mail 
        /* 
                                    "Activación de formulario", 
                                    "Los datos introducidos en el formulario son:\n", 
                                    $_POST["E-mail"])) 
        echo "Su formulario ha sido enviado con exito"; 
        */ 
         
 
?>