Me estoy volviendo loco GatorV, con la función imap_body efectivamente cojo todo el cuerpo, cabeceras, adjunto, todo...
Pero es mas difícil tratarlo no?!
Si lo que quisiera sería tener es lo siguiente:
Una tabla con los correos ordenados por fecha de llegada y que al visualizar el contenido de cada uno de ellos me apareciese la siguiente información, dependiendo del tipo de mensaje. Llega un mensaje nuevo, sin adjuntos ni nada (muestro)
Origen, destino, hora, asunto y cuerpo
Llega un mensaje con una respuesta (muestro)
Respuesta desde: origen, destino, hora, asunto y cuerpo
Mensaje original: origen, destino, hora, asunto y cuerpo
Si tuviera más respuestas o adjuntos (muestro)
Respuesta desde: origen, destino, hora, asunto y cuerpo
Respuesta desde: origen, destino, hora, asunto y cuerpo
Respuesta desde: origen, destino, hora, asunto y cuerpo
Mensaje original: origen, destino, hora, asunto y cuerpo
adjunto: prueba.doc
El siguiente código te muestra la tabla de correos (sin ordenar, porque no he conseguido juntar las lineas de la 20 a la 26 dentro del bucle que genera la tabla.
Es decir, la función ordenar por separado me funciona, pero no se como introducirla dentro del bucle que va imprimiendo la tabla.
Código PHP:
Ver original<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Chequear cuenta de correo</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link href="imap_css.css" rel="stylesheet" type="text/css" media="all" />
</head>
<body>
<h1 class="titulo"> Webmail BETA </h1>
<?
// Detalles generales de todos los mensajes del usuario.
$messages = imap_sort($imap, SORTARRIVAL
, 1);
echo "<pre>";
foreach ($messages as $message) {
$prettydate = date("jS F Y", $header->udate); print "{$header->fromaddress} - $prettydate\n";
}
echo "</pre>";
$cont = 0;
// Informacion del mailbox
echo "<div class='estadisticas'>";
if ($check) {
echo "Fecha: " . $check->Date . "<br/>" ; //echo "Driver: " . $check->Driver . "<br />\n" ;
//echo "Mailbox: " . $check->Mailbox . "<br />\n" ;
echo "Total Mensajes: $check->Nmsgs | Sin Leer: $check->Unread | Recientes: $check->Recent | Eliminados: $check->Deleted <br/>";
echo "Tamaño buzón: " . $check->Size . "<br/><br/>" ;
} else {
}
echo "</div>";
// MOSTRAMOS EL MENSAJE
echo "-------------------------------------------------------<br />";
if (isset($_GET['num'])){ $num_mensaje=$_GET['num'];
echo "Mostrando cuerpo del mensaje #$num_mensaje<br/>";
$cont=0;
foreach ($resultados as $detalles) {
$cont = $cont + 1;
if ($cont == $num_mensaje){
$asunto=$detalles->subject;
echo "<p class='asunto'>$asunto</p>";}
}
$section = 1;
echo nl2br(strip_tags($mensaje,'<p>')); // Util para los mensajes HTML, los transforma en texto plano
}else{
echo "Mensaje no encontrado<br/>";
}
echo "<br />-------------------------------------------------------<br />";
?>
<table class='tabla1'>
<thead>
<tr>
<th scope="col" title="Mensaje">Msj</th>
<th scope="col" title="Remitente">Remitente</th>
<th scope="col" title="Asunto">Asunto</th>
<th scope="col" title="Tamaño">Tamaño</th>
<th scope="col" title="Fecha">Fecha</th>
<th scope="col" title="Adjunto">Adjunto</th>
<th scope="col" title="Leido">Leido</th>
</tr>
</thead>
<?
//$i=0;
foreach ($resultados as $detalles) {
echo "<tr>";
//echo "Para: $detalles->to <br>";
// Ponemos 'Sin asunto' en caso que no tenga.
if ($detalles->subject == ''){$subject='Sin asunto';}
else{
//Evita asuntos tipo =?ISO-8859-1?Q?B=F8lla?=
}
// Mirar si tiene adjuntos
echo "<td><b>#$detalles->msgno</b></td>";
echo "<td><b>$from</b></td>";
echo "<td><a href='correo_imap.php?num=$detalles->msgno'><b>$subject</b></a></td>";
//echo "<td><a href='mostrar_correo.php?msj=$detalles->msgno'><b>$subject</b></a></td>";
echo "<td><b>$detalles->size bytes</b></td>";
echo "<td><b>$detalles->date</b></td>";
if($msg_structure->bytes == "")
{echo "<td><b>No</b></td>";}
else{echo "<td><b>Sí</b></td>";}
if($detalles->seen == "0") {
echo "<td><b>Sin leer</b></td>";
$cont = $cont + 1;
} else {
echo "<td>Leido</td>";
}
//$servidorenvia = strstr($detalles->message_id, '@');
//echo "Dominio Que Envia: $servidorenvia<br><hr>";
echo "</tr>";
}
echo "</table>";
?>
<div id="footer"> <p>Tratamiento de correo via IMAP - BETA 1.0</p></div>
</body>
</html>
Muchas gracias de antemano!