13/07/2010, 03:08
|
| | Fecha de Ingreso: julio-2010
Mensajes: 6
Antigüedad: 14 años, 6 meses Puntos: 0 | |
adjuntos en cuerpo de mensaje como texto Tengo el siguiente archivo php para enviar los datos de un formulario con adjuntos por email. Pero lo que me gustaría es que en el cuerpo del mensaje apareciese una lista de los archivos adjuntos.
Gracias por vuestra ayuda. Código PHP: <?php
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"], 'r');
$sContenido = fread($oFichero, filesize($vAdjunto["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}
// 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:
if (form_mail("[email protected]",
"Activación de formulario",
"Los datos introducidos en el formulario son:\n",
"[email protected]"))
echo "Su formulario ha sido enviado con exito";
?> |