Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/08/2003, 04:44
Avatar de jesusma
jesusma
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla (Spain)
Mensajes: 38
Antigüedad: 20 años, 10 meses
Puntos: 0
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($fpfilesize($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.
__________________
La mejor improvisación es la que se prepara.