Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/08/2010, 10:08
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años, 1 mes
Puntos: 0
Envio de archivo adjunto con el email

Hola a todos(cuanto tiempo, el verano)

el codigo que pongo a continuación, creía que funcionaba pero aunque me envia el email con el formulario de forma correcta, lo que no me hace es enviar el archivo adjunto.

Os pongo el codigo a ver si veis el fallo:
<?php
$destinatario = "[email protected]";

$asunto = $_POST['pro'];

if ($_POST['pro'] != "" AND $_POST['p_contacto'] != "" AND $_POST['t_contacto'] != "" AND $_POST['e_contacto'] != "")
{
$cuerpo = '
----------------------------------------------------------------------------
Proveedor: '.$_POST['pro'].'
Persona de Contacto: '.$_POST['p_contacto'].'
Email: '.$_POST['e_contacto'].'
Telefono: '.$_POST['t_contacto'].'
----------------------------------------------------------------------------
';

$sAdjuntos = "";
if ($sDe)$sCabeceras = "From:".$sDe."\n";
else $sCabeceras = "";
$sCabeceras .= "MIME-version: 1.0\n";
foreach ($_POST as $sNombre => $sValor)
$sTexto = $sTexto."\n".$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);
}

//dirección del remitente
$header = "From: [email protected] \r\n";
$header .= "Mime-Version: 1.0 \r\n";
$header .= "Content-Type: text/plain";

mail($destinatario,$asunto,utf8_decode($cuerpo),$h eader);
echo ' - Formulario enviado, Gracias. - ';
/*echo $_POST['para'];
echo $_POST['asunto'];
echo $_POST['mensaje']. ' - ' .$_POST['nombre']. ' - ' .$_POST['email']. ' - ' .$_POST['telefono']; */
echo'<br/>';
echo ' - Ahora puede cerrar esta ventana - ';
}
else
{
echo ' - Ha quedado sin rellenar alguno de los campos obligatorios. - ';
echo $_POST['tour'].','.$_POST['p_contacto'].','.$_POST['t_contacto'].','.$_POST['e_contacto'].','.$_POST['logo'];
}

?>

Un saludo.