Buenos dias. Escribo aquí poruqe tengo un problema que me ha surgido al intentar enviar ficheros adjuntos con php mail (que se puede, lo se, lo he visto).
La cosa es que investigando por aquí y por allá he obtenido este engendro:
Código PHP:
<?php session_start ();
//Compruebo errores
error_reporting(E_ALL & ~E_NOTICE);
ini_set("display_errors", 1);
//Hay más código antes pero no tiene que ver con el tema
//Compruebo el tipo de fichero
$mime_archivo=($_FILES['uploaded']['type']);
$mimes_aceptados=array('application/vnd.ms-excel','application/vnd.ms-powerpoint','application/pdf','application/msword','application/zip','application/rar');
if (!in_array($mime_archivo,$mimes_aceptados))
{echo "<script type=\"text/javascript\">alert(\"El fichero no está en el formato adecuado solo se admite Excel, Word, PDF, compresión ZIP y Compresión RAR\");
window.history.back();
</script>";
exit;}
//Compruebo el tamaño del fichero
if($_FILES['uploaded']['size']>5000000)
{echo "<script type=\"text/javascript\">alert(\"El tamaño no es correcto deber ser inferior a 2MB\");
window.history.back();
</script>";
exit;}
//Compruebo que no se produzcan errores
if($_FILES['uploaded']['error']!=0)
{echo "<script type=\"text/javascript\">alert(\"Error al copiar el archivo\");
window.history.back();
</script>";
exit; }
//nombre del archivo
$archivo= $_FILES['uploaded'][name];
//Generamos un número aleatorio para concatenar con el nombre de archivo y obtener un nombre único
$Prefijo =substr(md5(uniqid(rand())),0,6);;
//defino donde guardo los archivos
$rutaDoc = "../uploads/".$Prefijo."_".$archivo;
if(!copy($_FILES['uploaded']['tmp_name'],$rutaDoc))
{echo "<script type=\"text/javascript\">alert(\"Error al copiar el archivo\");
window.history.back();
</script>";
exit;}
//Guardo el fichero
// creo query para tabla Documentos
$queryDOC = "INSERT INTO documentos (idEMP,idPER,RutaDoc) VALUES ('$PKPER','$idEMP','$rutaDoc')";
// ejecuto query para tabla Documentos
$resultDOC = mysql_query($queryDOC) or die ("Error in query: $queryDOC. ".mysql_error());
//echo "New record en Plataforma inserted with ID ".mysql_insert_id();
/////////////////////////////////////////
//Envio correos informando del registro//
/////////////////////////////////////////
//Defino las variables del mensaje de correo
foreach ($_FILES as $rutaDoc)
{
if ($bHayFicheros == 0)
{
$bHayFicheros = 1;
$headers .= "Content-type: multipart/mixed;";
$headers .= "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 ($rutaDoc["size"] > 0)
{
$sAdjuntos .= "\n\n----_Separador-de-mensajes_--\n";
$sAdjuntos .= "Content-type: ".$rutaDoc["type"].";name=\"".$rutaDoc["name"]."\"\n";;
$sAdjuntos .= "Content-Transfer-Encoding: BASE64\n";
$sAdjuntos .= "Content-disposition: attachment;filename=\"".$rutaDoc["name"]."\"\n\n";
$oFichero = fopen($rutaDoc["tmp_name"], 'r');
$sContenido = fread($oFichero, filesize($rutaDoc["tmp_name"]));
$sAdjuntos .= chunk_split(base64_encode($sContenido));
fclose($oFichero);
}
}
$message=$cuerpo;
$remitente='From: [email protected]';
$destinatario ='To: [email protected]';
$asunto = "IMPORTANTE: Solicitud de información desde ".$empresa;
$cuerpo = ".$nombre.' '.$apellido1.' ' del departamento '";
//para el envío en formato HTML
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-type: text/html; charset=iso-8859-1\r\n";
//dirección del remitente
$headers .= "From: Mailer <[email protected]>\r\n";
//dirección de respuesta, si queremos que sea distinta que la del remitente
$headers .= "Reply-To: [email protected]\r\n";
//ruta del mensaje desde origen a destino
$headers .= "Return-path: [email protected]\r\n";
//direcciones que recibián copia
$headers .= "Cc: [email protected]\r\n";
//direcciones que recibirán copia oculta
$headers .= "Bcc: [email protected]\r\n";
mail($destinatario,$asunto,$cuerpo,$headers);
//sigue el código para otra cosa
?>
¿Alguien pude hecharme una mano?
Estoy desesperadoooooo