Foros del Web » Programando para Internet » PHP »

Envio de archivo adjunto con el email

Estas en el tema de Envio de archivo adjunto con el email en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 23/08/2010, 10:08
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
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.
  #2 (permalink)  
Antiguo 23/08/2010, 10:27
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Envio de archivo adjunto con el email

yo lo único que veo mal es que no usas la variable donde vas adjuntando los archivos al enviar el mail...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 23/08/2010, 12:07
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Respuesta: Envio de archivo adjunto con el email

Gracias por tu respuesta, pateketrueke

sería así?
mail($destinatario,$asunto,utf8_decode($cuerpo),$h eader,$sAdjuntos);
  #4 (permalink)  
Antiguo 23/08/2010, 12:21
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Envio de archivo adjunto con el email

¿porque no lees el manual?
http://php.net/mail
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 24/08/2010, 06:05
thi
 
Fecha de Ingreso: abril-2009
Mensajes: 244
Antigüedad: 15 años
Puntos: 0
Respuesta: Envio de archivo adjunto con el email

Vale ya lo pille,

para enviar un adjunto que sea de texto:

$header .= $sAdjuntos."\n\n----_Separador-de-mensajes_----\n";

pero lo que quiero es enviar un adjunto que se una imagen, y esto no lo acabo de ver.

Un saludo.

Etiquetas: email, envio, adjuntos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:00.