<?php
// decode.php - Encargado de leer y traducir el cuerpo de los correos

// 1. Función para obtener el cuerpo del correo desde el servidor
function get_email_body($inbox, $email_id, $header = null) {
    // Obtenemos la estructura del correo (para saber si es HTML o texto plano)
    $structure = @imap_fetchstructure($inbox, $email_id);
    
    // Extraemos la parte principal del correo (usualmente el texto)
    $body = @imap_fetchbody($inbox, $email_id, 1);
    
    // Si la parte 1 falla, obtenemos el cuerpo completo como respaldo
    if (empty($body)) {
        $body = @imap_body($inbox, $email_id);
    }

    // Averiguamos cómo viene codificado el correo (3 = Base64, 4 = Quoted-Printable)
    $encoding = 0;
    if (isset($structure->parts) && isset($structure->parts[0])) {
        $encoding = $structure->parts[0]->encoding ?? 0;
    } elseif (isset($structure->encoding)) {
        $encoding = $structure->encoding;
    }

    // Decodificamos el mensaje para que el humano lo pueda leer
    if ($encoding == 3) {
        $body = base64_decode($body);
    } elseif ($encoding == 4) {
        $body = quoted_printable_decode($body);
    }

    return $body;
}

// 2. Función para procesar y limpiar el correo antes de mostrarlo en pantalla
function process_email_body($body) {
    // Forzamos la codificación a UTF-8 para que las tildes y las "ñ" se vean correctamente
    $body = mb_convert_encoding($body, 'UTF-8', 'auto');
    
    // Devolvemos el cuerpo listo para ser impreso debajo del botón
    return $body;
}
?>