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)
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;