Hola amigos tengo la sig. funcion para adjuntar un archivo, que funciona correctamente, es decir me adjunta bien el archivo que quiero enviar y me muestra el texto que le agregue, ademas de que me envia lo que deseo en formato hml, mi funcion CrearHtmlMinuta($Cadena, $Asunto) lo que hace es crearme una pagina html con una tabla, recogiendo los datos de un archivo que tengo almacenado...
Funciona correctamente con el outlook y el thuderbird (Icedove) pero cuando lo envio a hotmail y checo el correo con el navegador, solo me muestra los encabezados.. pongo el ejemplo de lo que me muestra:
Código PHP:
Minuta: 20, del dia 2007-11-16‏ De: [email protected] Enviado: martes, 20 de noviembre de 2007 03:47:59 p.m.
Para: xxx@xxx.com; xx@hotmail.com [IMG]http://gfx2.hotmail.com/mail/w2/ltr/i_attach.gif[/IMG] 2007-11-1...xls (3.4 KB), ATT00001 (5.5 KB), Mail message (0.1 KB)
y ya no me muestra el mensaje html ni el de puro texto, solo dandole click en cada archivo adjunto.
Espero haberme explicado algo claro al menos para que me entiendan por que solo me los adjunta y no me los muestra como yo quisiera, alguna sugerencia sobre como modificar los encabezados o el body del mensaje?
Ahi va la funcion que tengo
Código PHP:
function EnviarMinuta($Archivo, $Cadena, $Mensaje, $Asunto, $Para, $De)
{
$DirLocal='/XXX/minutas/';
$buffer = implode("", file("$DirLocal$Archivo")); // Leer fichero
$buffer=chunk_split(base64_encode($buffer)); // Codificación en base64 y divido
// Cabeceras
$Cabecera = "From: $De\n";
$Cabecera .= "Return-Path: <$From>\n";
$Cabecera .= "Return-Receipt-To: <$From>\n"; //Notificar de leido
$Cabecera .= "MIME-version: 1.0\n";
$Cabecera .= "Content-type: multipart/mixed; ";
$Cabecera .= "boundary=\"Message-Boundary\"\n";
$Cabecera .= "Content-transfer-encoding: 7BIT\n";
$Cabecera .= "X-attachments: $DirLocal$Archivo\n\n";
// Adjuntar el fichero
$Msj = "\n\n--Message-Boundary\n";
$Msj .= "Content-type: Binary; name='$Archivo'\n";
$Msj .= "Content-Transfer-Encoding: BASE64\n";
$Msj .= "Content-disposition: attachment; filename=$Archivo\n\n";
$Msj .= "$buffer\n";
// Mensaje en html
$Msj .= "\n\n--Message-Boundary\n";
$Msj .= "Content-Type: text/HTML; charset=ISO-8859-1\n";
$Msj .= "Content-Transfer-Encoding: 8bit\n\n";
$Cadena=CrearHtmlMinuta($Cadena, $Asunto); //Lo convierto a pagina html
$Msj .= $Cadena;
$Msj .= "\n\n--Message-Boundary\n";
$Msj .= "Content-type: text/plain; charset=iso-8859-1\n";
$Msj .= "Content-transfer-encoding: 7BIT\n";
$Msj .= "Content-description: Mail message body\n\n";
$Msj .= "$Mensaje\n"; //Agrego el contenido del mensaje
$Error=mail("$Para", $Asunto, $Msj, $Cabecera);
if (!$Error) // Envio de mail y regreso el estado del envio
return true;
else
return $Error;