Foros del Web » Programando para Internet » PHP »

archivo adjunto por mail con PHP

Estas en el tema de archivo adjunto por mail con PHP en el foro de PHP en Foros del Web. Hola, tengo un codigo para enviar ficheros adjuntos por mail con PHP, pero en el ejemplo solo se adjunta 1 solo archivo, y he probado ...
  #1 (permalink)  
Antiguo 16/10/2004, 09:26
 
Fecha de Ingreso: octubre-2004
Mensajes: 198
Antigüedad: 13 años, 1 mes
Puntos: 1
archivo adjunto por mail con PHP

Hola, tengo un codigo para enviar ficheros adjuntos por mail con PHP, pero en el ejemplo solo se adjunta 1 solo archivo, y he probado de varias maneras pero no consigo hacer que se puedan adjuntar mas ficheros desde un formulario en html.
Lo que quiero es que se puedan adjuntar mas archivos.
Este código esta hecho para adjuntar un solo archivo, pero yo quiero que se puedan adjuntar más, en total 8, el código del PHP es el siguiente:
----------------------------------------------------------
<html>
<head>
<title>Formulario</title>
<meta http-equiv="espires" content=0>

</head>

<body bgcolor="#FFFFFF" text="#000000">

<center>
<font size="2" face="Tahoma,Verdana,Arial"><b>
<h1>Envío de mensaje realizado.</h1></b>
</font>
</center>

<?

/* Este script está diseñado para gestionar el envío de correo electrónico
con archivos adjuntos incluidos. Los nombres de las siguientes variables
proceden del formulario HTML que llama al script, por lo que, si lo usas, deberás cambiar estas variables por las que tenga tu formulario.

$morigen
$mnombre
$medad
$mcorreo
$mconocido
$mespecificar
$mcomentarios
$adjunto

La ultima es el fichero adjunto
*/


/*Determinamos si hay un fichero adjunto mediante la clave "size"
de la matriz asociativa HTTP_POST_FILES. Si lo hay, lo leemos y lo
preparamos para luego adjuntarlo al correo.*/

if ($HTTP_POST_FILES['adjunto']['size']!=0)
{
$fichero = fopen($adjunto, 'r');
$contenido = fread($fichero, filesize($adjunto));
$encoded_attach = chunk_split(base64_encode($contenido));
fclose($fichero);
}




//Se recogen los datos del formulario para montar el cuerpo del mensaje.
$mensaje ="NOMBRE Y APELLIDO: $nombreyapellido\n";
$mensaje .="EMAIL: $email";
$mensaje .="TELEFONO: $telefono";
$mensaje .="OTROS DATOS: $otrosdatos";


// Se monta la cabecera del mensaje.
$cabeceras = "From:<$mcorreo>\n";
// $cabeceras .= "Reply-To:$mcorreo \n";
$cabeceras .= "MIME-version: 1.0\n";


if ($HTTP_POST_FILES['adjunto']['size']!=0)
{
$cabeceras .= "Content-type: multipart/form-data; ";
$cabeceras .= "boundary=\"Message-Boundary\"\n";
$cabeceras .= "Content-transfer-encoding: 7BIT\n";

/*Si hay fichero adjunto, lo adjuntamos ahora.*/
$cabeceras .= "X-attachments:".$fichero;


//Se configuran las propiedades del cuerpo del mensaje
$body_top = "--Message-Boundary\n";
$body_top .= "Content-type: text/plain;charset=US-ASCII\n";
$body_top .= "Content-transfer-encoding: 7BIT\n";
$body_top .= "Content-description: Mail messagebody\n\n";
}
$cuerpo = $body_top.$mensaje;
if ($HTTP_POST_FILES['adjunto']['size']!=0)
{
$nombref=$HTTP_POST_FILES['adjunto']['name'];
$cuerpo .= "\n\n--Message-Boundary\n";
$cuerpo .= "Content-type: Binary;name=\"$nombref\"\n";
$cuerpo .= "Content-Transfer-Encoding: BASE64\n";
$cuerpo .= "Content-disposition: attachment;filename=\"$nombref\"\n\n";
$cuerpo .= "$encoded_attach\n";
$cuerpo .= "--Message-Boundary--\n";
} else {
$nombref="";
}

/*Se establece el destino del mensaje. Aqui pondrás
tu propia dirección de correo electrónico*/
$destino = "[email protected]";

echo ("<center><font size="2" face='Tahoma,Verdana,Arial'><b><h1>");

if (mail($destino,$morigen,$cuerpo,$cabeceras))
{
echo ("GRACIAS, sus datos han sido enviados.");
} else {
echo ("SE HA PRODUCIDO UN ERROR, intente otra vez");
}

echo ("</center></b></font></h1>");

?>
<center>
<input class="botones" type="button" value="CERRAR ESTA PÁGINA" onClick="self.close();">
</center>
</body>
</html>

-----------------------------------------
Muchas Gracias
Saludos
Mauro
  #2 (permalink)  
Antiguo 18/10/2004, 08:43
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Yo uso la classe:

PHP mailer
http://phpmailer.sourceforge.net

que facilita muchooooo esa (y otras) taréas con e-mails ..

Un saludo,
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 14:35.