Bueno! Gracias por el consejo, esto ya se ve mucho mejor.
AHHHHH! Se me olvido decir antes que, el servidor de correo saliente que uso es STMP (he visto por ahi que da algun que otro problema).
Aqui teneis, el codigo formateado (mas o menos, lo intereseante), pero el problema sigue siendo el mismo:
El mensaje plano, se escribe sin problema, pero
Los ficheros adjuntos los manda, pero no correctamente
(Ah decir verdad, solo manda unos cientos de bytes y ni siguiera del fichero que adjunto).
Código PHP:
//Variables que se pasan del formulario.
$subject = $_POST["subject"];
$mensaje = $_POST["mensaje"];
//Propiedades del archivo.
$archivo_name= $HTTP_POST_FILES['archivo']['name'];
$archivo_size= $HTTP_POST_FILES['archivo']['size'];
$archivo_type= $HTTP_POST_FILES['archivo']['type'];
$archivo= $HTTP_POST_FILES['archivo']['tmp_name'];
//$lim_tamano= $HTTP_POST_VARS['lim_tamano'];
//Composicion del mensaje.
$UN_SALTO="\r\n";
$DOS_SALTOS="\r\n\r\n";
//Separador de bloques.
$separador ="_separador".md5 (uniqid (rand()));
//Composicion de los destinatarios.
......
//Titulo del mensaje.
....
//Mensaje en texto Plano, viene del form.
....
//Cabeceras.
$cabecera ="Date: ".date("l j F Y, G:i").$UN_SALTO;
$cabecera .="MIME-Version: 1.0\n";
$cabecera .="From: ".$remitente."<".$remite.">\n";
$cabecera .="Return-path: ". $remite.$UN_SALTO;
$cabecera .="Reply-To: ".$responder.$UN_SALTO;
$cabecera .="X-Mailer: PHP/". phpversion().$UN_SALTO;
//Contenido para ficheros adjuntos.
$cabecera .= "Content-Type: multipart/mixed;".$UN_SALTO;
$cabecera .= " boundary=$separador".$DOS_SALTOS;
// Parte primera - Mensaje en formato PLANO
// Separador inicial
$texto ="--$separador".$UN_SALTO;
// Encabezado del texto plano.
$texto .="Content-Type: text/plain; charset=\"ISO-8859-1\"".$UN_SALTO;
$texto .="Content-Transfer-Encoding: 7bit".$DOS_SALTOS;
//Contenido de esta parte del mensaje
$texto .= $mensaje;
// Separador de partes
$adj1 = $UN_SALTO."--$separador".$UN_SALTO;
if ($archivo){
// Parte segunda - FICHEROS ADJUNTOS.
# Encabezado parcial
$adj1 .="Content-Type: ".$archivo_type ."; name=\"".$archivo_name."\"".$UN_SALTO;
$adj1 .="Content-Disposition: inline; filename=\"".$archivo_name."\"".$UN_SALTO;
$adj1 .="Content-Transfer-Encoding: base64".$DOS_SALTOS;
# lectura del fichero adjunto
$fp = fopen($archivo, "r");
$buff = fread($fp, filesize($archivo));
fclose($fp);
//codificación del fichero adjunto
$adj1 .=chunk_split(base64_encode($buff));
// separador final del mensaje
$fin .=$UN_SALTO."--$separador".$UN_SALTO;
}
// Unión de las diferentes partes para crear el cuerpo del mensaje
$mensaje=$texto.$adj1.$fin;
if( mail($destinatario, $titulo, $mensaje,$cabecera)){
echo "mensaje enviado";
}
else {
echo "mensaje NO enviado";
}
Gracias. ta luegooooo.