Ver Mensaje Individual
  #1 (permalink)  
Antiguo 31/05/2007, 21:51
franco_r3
 
Fecha de Ingreso: febrero-2007
Ubicación: Valparaiso, Chile.
Mensajes: 39
Antigüedad: 17 años, 10 meses
Puntos: 0
Enviar formulario con archivo adjutno a mail(RESPUESTA)

Aca les dejo la forma de enviar los datos de un formulario con un archivo adjutno por mail. esta funcion permite hacerlo sin necesidad de hacerlo con el complidado PHPmailer que tanto hablan. este codigo pesca todos los campos de un formulario y los envia, ademas sirve para varios archivos adjuntos.

Cita:
<form name='formulario' id='formulario' method='post' action='mail_adjuntos.php' target='_self' enctype="multipart/form-data">
<p>Nombre <input type='text' name='Nombre' id='Nombre'></p>
<p>Apellidos <input type='text' name='Apellidos' id='Apellidos'></p>
<p>

E-mail <input type='text' name='E-mail' id='E-mail'></p>

<p>Adjuntar archivo: <input type='file' name='archivo1' id='archivo1'></p>
<p>
<input type='submit' value='Enviar formulario'>
</p>
</form>
Cita:
<?php
function form_mail($sPara, $sAsunto, $sTexto, $sDe)
{
$bHayFicheros = 0;
$sCabeceraTexto = "";
$sAdjuntos = "";

if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$sNombre." = ".$sValor;

foreach ($_FILES as $vAdjunto)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$sCabeceras .= "Content-type: multipart/mixed;";
$sCabeceras .= "boundary=\"--_Separador-de-mensajes_--\"\n";

$sCabeceraTexto = "----_Separador-de-mensajes_--\n";
$sCabeceraTexto .= "Content-type: text/plain;charset=iso-8859-1\n";
$sCabeceraTexto .= "Content-transfer-encoding: 7BIT\n";

$sTexto = $sCabeceraTexto.$sTexto;
}
if ($vAdjunto["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\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($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}

if ($bHayFicheros)
$sTexto .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";
return(mail($sPara, $sAsunto, $sTexto, $sCabeceras));
}

//Ejemplo de como usar:
if (form_mail("[email protected]","Asunto del mensaje",
"Los datos introducidos en el formulario son:\n\n", "[email protected]"))
echo "Su formulario ha sido enviado con exito";
?>

ojala les sirva.