<?php
/**
 * Script de Diagnóstico para Configuración de Email
 * Este script ayuda a identificar problemas con la configuración de email en el servidor
 */

// Desactivar errores en pantalla para mostrar resultados limpios
error_reporting(E_ALL);
ini_set('display_errors', 1);

header('Content-Type: text/html; charset=utf-8');
?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Diagnóstico de Email - SIGVEM</title>
    <style>
        body {
            font-family: Arial, sans-serif;
            max-width: 900px;
            margin: 20px auto;
            padding: 20px;
            background: #f5f5f5;
        }
        .container {
            background: white;
            padding: 30px;
            border-radius: 10px;
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
        }
        h1 {
            color: #333;
            border-bottom: 3px solid #0d6efd;
            padding-bottom: 10px;
        }
        h2 {
            color: #555;
            margin-top: 30px;
        }
        .check {
            padding: 10px;
            margin: 10px 0;
            border-radius: 5px;
        }
        .success {
            background: #d4edda;
            color: #155724;
            border-left: 4px solid #28a745;
        }
        .error {
            background: #f8d7da;
            color: #721c24;
            border-left: 4px solid #dc3545;
        }
        .warning {
            background: #fff3cd;
            color: #856404;
            border-left: 4px solid #ffc107;
        }
        .info {
            background: #d1ecf1;
            color: #0c5460;
            border-left: 4px solid #17a2b8;
        }
        code {
            background: #f4f4f4;
            padding: 2px 6px;
            border-radius: 3px;
            font-family: 'Courier New', monospace;
        }
        table {
            width: 100%;
            border-collapse: collapse;
            margin: 15px 0;
        }
        table th, table td {
            padding: 10px;
            text-align: left;
            border-bottom: 1px solid #ddd;
        }
        table th {
            background: #f8f9fa;
            font-weight: bold;
        }
    </style>
</head>
<body>
    <div class="container">
        <h1>🔍 Diagnóstico de Configuración de Email</h1>
        <p>Este script verifica la configuración del servidor para el envío de correos electrónicos.</p>

        <?php
        $checks = [];
        $hasErrors = false;
        $hasWarnings = false;

        // 1. Verificar función mail()
        echo "<h2>1. Verificación de Función mail()</h2>";
        if (function_exists('mail')) {
            echo "<div class='check success'>✓ La función <code>mail()</code> está disponible</div>";
            $checks['mail_function'] = true;
        } else {
            echo "<div class='check error'>✗ La función <code>mail()</code> NO está disponible</div>";
            echo "<div class='check warning'>⚠️ Necesita habilitar la función mail() en php.ini o contactar al proveedor de hosting</div>";
            
            // Mostrar instrucciones detalladas para activar mail()
            echo "<div class='check info'>";
            echo "<strong>📋 Cómo activar la función mail():</strong><br><br>";
            
            // Detectar el entorno
            $isXAMPP = strpos(__DIR__, 'xampp') !== false || strpos(php_uname(), 'Windows') !== false;
            $isLinux = strpos(php_uname('s'), 'Linux') !== false;
            $phpIniPath = php_ini_loaded_file();
            
            echo "<strong>Entorno detectado:</strong> ";
            if ($isXAMPP) {
                echo "XAMPP (Windows/Local)<br><br>";
                echo "<strong>Pasos para XAMPP:</strong><br>";
                echo "1. Localice el archivo <code>php.ini</code> en: <code>" . ($phpIniPath ?: 'C:\\xampp\\php\\php.ini') . "</code><br>";
                echo "2. Abra el archivo con un editor de texto (como Notepad++)<br>";
                echo "3. Busque la línea: <code>;extension=openssl</code> y elimine el punto y coma (;) al inicio<br>";
                echo "4. Busque la sección <code>[mail function]</code> y configure:<br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>SMTP = localhost</code><br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>smtp_port = 25</code><br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>sendmail_from = tu-email@dominio.com</code><br>";
                echo "5. Si usa un servidor SMTP externo, configure:<br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>SMTP = smtp.gmail.com</code> (o su servidor SMTP)<br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>smtp_port = 587</code><br>";
                echo "6. Guarde el archivo y reinicie Apache desde el panel de control de XAMPP<br>";
                echo "7. Verifique nuevamente con este script de diagnóstico<br><br>";
            } elseif ($isLinux) {
                echo "Linux (Servidor/Hosting)<br><br>";
                echo "<strong>Opción A - Hosting Compartido:</strong><br>";
                echo "1. Contacte a su proveedor de hosting (cPanel, Plesk, etc.)<br>";
                echo "2. Solicite que habiliten la función mail() en su cuenta<br>";
                echo "3. Muchos hostings deshabilitan mail() por seguridad y recomiendan SMTP<br>";
                echo "4. <strong>Recomendación:</strong> Use SMTP en lugar de mail() (ya está configurado en su sistema)<br><br>";
                
                echo "<strong>Opción B - Servidor Propio (VPS/Dedicado):</strong><br>";
                echo "1. Instale sendmail o postfix:<br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>sudo apt-get install sendmail</code> (Ubuntu/Debian)<br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>sudo yum install sendmail</code> (CentOS/RHEL)<br>";
                echo "2. Configure sendmail:<br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>sudo sendmailconfig</code><br>";
                echo "3. Edite php.ini (ubicación: <code>" . ($phpIniPath ?: '/etc/php/X.X/apache2/php.ini') . "</code>):<br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>sendmail_path = /usr/sbin/sendmail -t -i</code><br>";
                echo "4. Reinicie Apache/PHP-FPM:<br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>sudo systemctl restart apache2</code><br>";
                echo "&nbsp;&nbsp;&nbsp;&nbsp;<code>sudo systemctl restart php-fpm</code> (si usa PHP-FPM)<br><br>";
            } else {
                echo "Otro entorno<br><br>";
                echo "1. Localice el archivo <code>php.ini</code>: <code>" . ($phpIniPath ?: 'Buscar en la configuración de PHP') . "</code><br>";
                echo "2. Verifique que la extensión <code>openssl</code> esté habilitada<br>";
                echo "3. Configure la sección <code>[mail function]</code> según su entorno<br>";
                echo "4. Reinicie el servidor web<br><br>";
            }
            
            echo "<strong>⚠️ IMPORTANTE:</strong><br>";
            echo "• La función mail() puede estar deshabilitada por seguridad en muchos hostings<br>";
            echo "• <strong>SMTP es más confiable y seguro</strong> que mail()<br>";
            echo "• Su sistema ya tiene SMTP configurado y funcionando correctamente<br>";
            echo "• No es necesario activar mail() si SMTP está funcionando<br>";
            echo "</div>";
            
            $checks['mail_function'] = false;
            // No marcar como error crítico todavía - verificaremos si SMTP está disponible más adelante
        }

        // 2. Verificar configuración PHP
        echo "<h2>2. Configuración de PHP</h2>";
        echo "<table>";
        echo "<tr><th>Configuración</th><th>Valor</th><th>Estado</th></tr>";
        
        $sendmail_path = ini_get('sendmail_path');
        echo "<tr><td><code>sendmail_path</code></td><td>" . ($sendmail_path ?: '<em>No configurado</em>') . "</td>";
        if ($sendmail_path) {
            echo "<td><span style='color: green;'>✓ OK</span></td></tr>";
        } else {
            echo "<td><span style='color: orange;'>⚠️ Puede necesitar configuración</span></td></tr>";
            $hasWarnings = true;
        }
        
        $smtp = ini_get('SMTP');
        echo "<tr><td><code>SMTP</code></td><td>" . ($smtp ?: '<em>No configurado</em>') . "</td>";
        if ($smtp) {
            echo "<td><span style='color: green;'>✓ Configurado</span></td></tr>";
        } else {
            echo "<td><span style='color: blue;'>ℹ️ Usando sendmail (normal en Linux)</span></td></tr>";
        }
        
        $smtp_port = ini_get('smtp_port');
        echo "<tr><td><code>smtp_port</code></td><td>" . ($smtp_port ?: '<em>No configurado</em>') . "</td>";
        if ($smtp_port) {
            echo "<td><span style='color: green;'>✓ Configurado</span></td></tr>";
        } else {
            echo "<td><span style='color: blue;'>ℹ️ No necesario con sendmail</span></td></tr>";
        }
        
        $sendmail_from = ini_get('sendmail_from');
        echo "<tr><td><code>sendmail_from</code></td><td>" . ($sendmail_from ?: '<em>No configurado</em>') . "</td>";
        if ($sendmail_from) {
            echo "<td><span style='color: green;'>✓ Configurado</span></td></tr>";
        } else {
            echo "<td><span style='color: orange;'>⚠️ Se recomienda configurar</span></td></tr>";
            $hasWarnings = true;
        }
        
        echo "</table>";

        // 3. Verificar permisos de archivos
        echo "<h2>3. Permisos de Archivos</h2>";
        $logFile = __DIR__ . '/actions/password_reset_links.log';
        $logDir = dirname($logFile);
        
        if (is_writable($logDir)) {
            echo "<div class='check success'>✓ El directorio <code>actions/</code> tiene permisos de escritura</div>";
            $checks['log_writable'] = true;
        } else {
            echo "<div class='check error'>✗ El directorio <code>actions/</code> NO tiene permisos de escritura</div>";
            echo "<div class='check warning'>⚠️ Necesita permisos de escritura para guardar logs de recuperación de contraseña</div>";
            $checks['log_writable'] = false;
            $hasErrors = true;
        }

        // 4. Verificar configuración de email-config.php
        echo "<h2>4. Configuración de Email</h2>";
        $configPath = __DIR__ . '/config/email-config.php';
        if (file_exists($configPath)) {
            echo "<div class='check success'>✓ Archivo de configuración encontrado</div>";
            require_once $configPath;
            
            try {
                $config = getEmailConfig();
                echo "<div class='check success'>✓ Configuración cargada correctamente</div>";
                
                echo "<table>";
                echo "<tr><th>Configuración</th><th>Valor</th><th>Estado</th></tr>";
                echo "<tr><td>Modo Desarrollo</td><td>" . ($config['development_mode'] ? 'Sí' : 'No') . "</td><td>-</td></tr>";
                echo "<tr><td>Email Remitente</td><td>" . htmlspecialchars($config['sender']['from_email']) . "</td><td>-</td></tr>";
                echo "<tr><td>Nombre Remitente</td><td>" . htmlspecialchars($config['sender']['from_name']) . "</td><td>-</td></tr>";
                echo "<tr><td>Log de Emails</td><td>" . ($config['log_emails'] ? 'Habilitado' : 'Deshabilitado') . "</td><td>-</td></tr>";
                
                // Mostrar configuración SMTP
                if (isset($config['smtp'])) {
                    $smtp = $config['smtp'];
                    $useSMTP = isset($smtp['use_smtp']) && $smtp['use_smtp'];
                    echo "<tr><td><strong>Usar SMTP</strong></td><td>" . ($useSMTP ? 'Sí' : 'No') . "</td>";
                    if ($useSMTP) {
                        echo "<td><span style='color: green;'>✓ Activado</span></td></tr>";
                    } else {
                        echo "<td><span style='color: orange;'>⚠️ Desactivado (usará mail() nativa)</span></td></tr>";
                        $hasWarnings = true;
                    }
                    
                    if ($useSMTP) {
                        echo "<tr><td>Servidor SMTP</td><td>" . htmlspecialchars($smtp['smtp_host'] ?? '-') . "</td><td>-</td></tr>";
                        echo "<tr><td>Puerto SMTP</td><td>" . htmlspecialchars($smtp['smtp_port'] ?? '-') . "</td><td>-</td></tr>";
                        echo "<tr><td>Encriptación</td><td>" . htmlspecialchars($smtp['smtp_encryption'] ?? '-') . "</td><td>-</td></tr>";
                        echo "<tr><td>Usuario SMTP</td><td>" . htmlspecialchars($smtp['smtp_username'] ?? '-') . "</td><td>-</td></tr>";
                        echo "<tr><td>Contraseña SMTP</td><td>" . (isset($smtp['smtp_password']) && !empty($smtp['smtp_password']) ? '***' : '<em>No configurada</em>') . "</td>";
                        if (empty($smtp['smtp_password'])) {
                            echo "<td><span style='color: red;'>✗ Requerida</span></td></tr>";
                            $hasErrors = true;
                        } else {
                            echo "<td><span style='color: green;'>✓ Configurada</span></td></tr>";
                        }
                    }
                }
                echo "</table>";
                
                // Probar conexión SMTP si está activado
                if (isset($config['smtp']) && isset($config['smtp']['use_smtp']) && $config['smtp']['use_smtp']) {
                    echo "<h3>4.1. Prueba de Conexión SMTP</h3>";
                    $smtp = $config['smtp'];
                    $host = $smtp['smtp_host'] ?? '';
                    $port = $smtp['smtp_port'] ?? 587;
                    $encryption = $smtp['smtp_encryption'] ?? 'tls';
                    
                    if (!empty($host)) {
                        $connectionString = ($encryption === 'ssl') ? 'ssl://' . $host : $host;
                        $socket = @fsockopen($connectionString, $port, $errno, $errstr, 5);
                        
                        if ($socket) {
                            echo "<div class='check success'>✓ Conexión SMTP exitosa a <code>$host:$port</code></div>";
                            fclose($socket);
                            $checks['smtp_connection'] = true;
                        } else {
                            echo "<div class='check error'>✗ No se pudo conectar a <code>$host:$port</code></div>";
                            echo "<div class='check warning'>⚠️ Error: $errstr (Código: $errno)</div>";
                            echo "<div class='check info'>ℹ️ Verifique que el servidor SMTP sea correcto y que el puerto no esté bloqueado por firewall</div>";
                            $checks['smtp_connection'] = false;
                            $hasWarnings = true;
                        }
                    } else {
                        echo "<div class='check error'>✗ Servidor SMTP no configurado</div>";
                        $checks['smtp_connection'] = false;
                        $hasErrors = true;
                    }
                }
                
                $checks['config'] = true;
            } catch (Exception $e) {
                echo "<div class='check error'>✗ Error al cargar configuración: " . htmlspecialchars($e->getMessage()) . "</div>";
                $checks['config'] = false;
                $hasErrors = true;
            }
        } else {
            echo "<div class='check error'>✗ Archivo de configuración no encontrado en: <code>" . htmlspecialchars($configPath) . "</code></div>";
            $checks['config'] = false;
            $hasErrors = true;
        }

        // 5. Prueba de envío de email
        echo "<h2>5. Prueba de Envío de Email</h2>";
        
        // Verificar si SMTP está configurado y activado
        $smtpAvailable = false;
        $smtpConfig = null;
        if (isset($checks['config']) && $checks['config']) {
            try {
                $config = getEmailConfig();
                if (isset($config['smtp'])) {
                    $smtpConfig = $config['smtp'];
                    $smtpAvailable = isset($smtpConfig['use_smtp']) && $smtpConfig['use_smtp'] && 
                                     !empty($smtpConfig['smtp_host']) && 
                                     !empty($smtpConfig['smtp_username']) && 
                                     !empty($smtpConfig['smtp_password']);
                }
            } catch (Exception $e) {
                // Ignorar
            }
        }
        
        if ($smtpAvailable) {
            echo "<div class='check info'>ℹ️ SMTP está activado. El sistema usará SMTP para enviar correos (no requiere mail()).</div>";
            echo "<div class='check success'>✓ Configuración SMTP lista para usar</div>";
            
            // Mostrar información de prueba SMTP
            if (isset($checks['smtp_connection']) && $checks['smtp_connection']) {
                echo "<div class='check success'>✓ La conexión SMTP al servidor fue exitosa</div>";
            } else {
                echo "<div class='check warning'>⚠️ No se pudo verificar la conexión SMTP. Esto no significa que no funcione, solo que no se pudo probar desde aquí.</div>";
            }
            
            // Botón para prueba de envío real
            echo "<div style='margin: 20px 0; padding: 15px; background: #e7f3ff; border-left: 4px solid #0d6efd; border-radius: 5px;'>";
            echo "<strong>🧪 Prueba de Envío Real:</strong><br><br>";
            echo "<a href='test-smtp.php' style='background: #0d6efd; color: white; padding: 12px 24px; text-decoration: none; border-radius: 5px; display: inline-block; font-weight: bold;'>📧 Enviar Email de Prueba SMTP</a><br><br>";
            echo "<small>Este enlace te llevará a una página donde podrás enviar un email de prueba real usando tu configuración SMTP.</small>";
            echo "</div>";
            
            echo "<div class='check info'>ℹ️ También puedes probar el envío real usando la función de recuperación de contraseña en <code>index.php</code></div>";
        } elseif ($checks['mail_function']) {
            $testEmail = "test@example.com"; // Email de prueba
            $subject = "Prueba SIGVEM - " . date('Y-m-d H:i:s');
            $message = "Este es un mensaje de prueba del sistema SIGVEM.\n\n";
            $message .= "Si recibes este correo, la configuración de email está funcionando correctamente.\n\n";
            $message .= "Fecha: " . date('Y-m-d H:i:s');
            
            $headers = "From: noreply@localhost\r\n";
            $headers .= "Content-Type: text/plain; charset=UTF-8\r\n";
            $headers .= "X-Mailer: PHP/" . phpversion();
            
            // Limpiar errores anteriores
            error_clear_last();
            
            $result = @mail($testEmail, $subject, $message, $headers);
            
            if ($result) {
                echo "<div class='check success'>✓ Función mail() ejecutada sin errores</div>";
                echo "<div class='check info'>ℹ️ Nota: Esto no garantiza que el email llegue. Verifica la configuración SMTP con tu proveedor de hosting.</div>";
            } else {
                $lastError = error_get_last();
                echo "<div class='check error'>✗ La función mail() retornó false</div>";
                if ($lastError) {
                    echo "<div class='check warning'>⚠️ Último error: " . htmlspecialchars($lastError['message']) . "</div>";
                }
                $hasWarnings = true;
            }
        } else {
            echo "<div class='check warning'>⚠️ La función mail() no está disponible</div>";
            if (!$smtpAvailable) {
                echo "<div class='check error'>✗ SMTP tampoco está configurado o activado</div>";
                echo "<div class='check info'>ℹ️ <strong>SOLUCIÓN:</strong> Active SMTP en <code>config/email-config.php</code> cambiando <code>use_smtp = true</code></div>";
                $hasErrors = true;
            }
        }

        // 6. Información del servidor
        echo "<h2>6. Información del Servidor</h2>";
        echo "<table>";
        echo "<tr><th>Información</th><th>Valor</th></tr>";
        echo "<tr><td>Sistema Operativo</td><td>" . php_uname('s') . " " . php_uname('r') . "</td></tr>";
        echo "<tr><td>Versión PHP</td><td>" . phpversion() . "</td></tr>";
        echo "<tr><td>Servidor Web</td><td>" . ($_SERVER['SERVER_SOFTWARE'] ?? 'Desconocido') . "</td></tr>";
        echo "<tr><td>Host</td><td>" . ($_SERVER['HTTP_HOST'] ?? 'Desconocido') . "</td></tr>";
        echo "</table>";

        // Resumen
        echo "<h2>📋 Resumen</h2>";
        
        // Verificar si SMTP está activado
        $smtpActivated = false;
        if (isset($checks['config']) && $checks['config']) {
            try {
                $config = getEmailConfig();
                if (isset($config['smtp']['use_smtp']) && $config['smtp']['use_smtp'] && 
                    !empty($config['smtp']['smtp_host']) && 
                    !empty($config['smtp']['smtp_username']) && 
                    !empty($config['smtp']['smtp_password'])) {
                    $smtpActivated = true;
                }
            } catch (Exception $e) {
                // Ignorar
            }
        }
        
        // Determinar si realmente hay errores críticos (excluyendo mail() si SMTP funciona)
        $realErrors = false;
        $errorMessages = [];
        
        // Solo considerar mail() como error si SMTP no está activado
        if (!$checks['mail_function'] && !$smtpActivated) {
            $realErrors = true;
            $errorMessages[] = "La función mail() no está disponible y SMTP no está activado. <strong>SOLUCIÓN:</strong> Active SMTP en <code>config/email-config.php</code>";
        }
        
        if (isset($checks['log_writable']) && !$checks['log_writable']) {
            $realErrors = true;
            $errorMessages[] = "El directorio actions/ no tiene permisos de escritura. Configure los permisos correctos (chmod 755 o 775).";
        }
        if (isset($checks['config']) && !$checks['config']) {
            $realErrors = true;
            $errorMessages[] = "Error en la configuración de email. Verifique el archivo config/email-config.php";
        }
        if (isset($checks['smtp_connection']) && !$checks['smtp_connection'] && $smtpActivated) {
            $realErrors = true;
            $errorMessages[] = "No se pudo conectar al servidor SMTP. Verifique la configuración SMTP en <code>config/email-config.php</code> o pruebe con puerto 465 (SSL)";
        }
        
        if ($realErrors) {
            echo "<div class='check error'>";
            echo "<strong>❌ Se encontraron errores críticos:</strong><ul>";
            foreach ($errorMessages as $msg) {
                echo "<li>$msg</li>";
            }
            echo "</ul></div>";
        }
        
        // Mostrar estado de SMTP si está activado
        if ($smtpActivated) {
            echo "<div class='check success'>";
            echo "<strong>✅ SMTP está activado y configurado</strong><br>";
            echo "El sistema usará SMTP para enviar correos. No necesita la función mail().<br>";
            if (!$checks['mail_function']) {
                echo "<span style='color: blue;'>ℹ️ Nota: La función mail() no está disponible, pero no es necesario porque SMTP está activado.</span><br>";
            }
            if (isset($checks['smtp_connection']) && $checks['smtp_connection']) {
                echo "<span style='color: green;'>✓ La conexión al servidor SMTP fue exitosa</span>";
            } else {
                echo "<span style='color: orange;'>⚠️ No se pudo verificar la conexión SMTP, pero esto no impide el envío</span>";
            }
            echo "</div>";
        } elseif (!$checks['mail_function']) {
            // Si SMTP no está activado y mail() no está disponible, mostrar como advertencia
            echo "<div class='check warning'>";
            echo "<strong>⚠️ La función mail() no está disponible</strong><br>";
            echo "SMTP tampoco está activado. <strong>SOLUCIÓN:</strong> Active SMTP en <code>config/email-config.php</code> cambiando <code>use_smtp = true</code>";
            echo "</div>";
        }
        
        if ($hasWarnings) {
            echo "<div class='check warning'>";
            echo "<strong>⚠️ Advertencias:</strong><ul>";
            echo "<li>Algunas configuraciones pueden necesitar ajustes. Revise las recomendaciones arriba.</li>";
            echo "<li>En producción, asegúrese de configurar correctamente SMTP o sendmail.</li>";
            echo "</ul></div>";
        }
        
        if (!$realErrors && !$hasWarnings && $smtpActivated && isset($checks['smtp_connection']) && $checks['smtp_connection']) {
            echo "<div class='check success'>";
            echo "<strong>✓ Todo parece estar configurado correctamente.</strong>";
            echo "<p>El sistema está listo para enviar correos electrónicos mediante SMTP.</p>";
            echo "<p>Si aún tienes problemas enviando emails, verifica:</p>";
            echo "<ul>";
            echo "<li>La configuración SMTP con tu proveedor de hosting</li>";
            echo "<li>Que el dominio tenga registros SPF y DKIM configurados</li>";
            echo "<li>Que los emails no estén siendo marcados como spam</li>";
            echo "</ul>";
            echo "</div>";
        } elseif (!$realErrors && $smtpActivated) {
            echo "<div class='check success'>";
            echo "<strong>✓ SMTP está configurado correctamente.</strong>";
            echo "<p>El sistema está listo para enviar correos electrónicos mediante SMTP.</p>";
            if (isset($checks['smtp_connection']) && !$checks['smtp_connection']) {
                echo "<p><small>Nota: No se pudo verificar la conexión SMTP desde este script, pero esto no impide el envío real de correos.</small></p>";
            }
            echo "</div>";
        }

        // Recomendaciones
        echo "<h2>💡 Recomendaciones</h2>";
        echo "<div class='check info'>";
        echo "<ul>";
        
        // Verificar si SMTP está activado
        $smtpActivated = false;
        if (isset($checks['config']) && $checks['config']) {
            try {
                $config = getEmailConfig();
                if (isset($config['smtp']['use_smtp']) && $config['smtp']['use_smtp']) {
                    $smtpActivated = true;
                }
            } catch (Exception $e) {
                // Ignorar
            }
        }
        
        if (!$checks['mail_function']) {
            if ($smtpActivated) {
                echo "<li><strong>✅ SMTP está activado:</strong> El sistema usará SMTP para enviar correos. <strong>NO necesita activar mail()</strong>.</li>";
                echo "<li><strong>Ventajas de SMTP sobre mail():</strong></li>";
                echo "<ul style='margin-left: 20px;'>";
                echo "<li>Mayor confiabilidad y tasa de entrega</li>";
                echo "<li>Autenticación segura (usuario/contraseña)</li>";
                echo "<li>Encriptación TLS/SSL</li>";
                echo "<li>Mejor control sobre el envío</li>";
                echo "<li>Funciona en hostings compartidos donde mail() está deshabilitado</li>";
                echo "</ul>";
                echo "<li><strong>Verificar SMTP:</strong> Asegúrese de que las credenciales SMTP en <code>config/email-config.php</code> sean correctas</li>";
                if (isset($checks['smtp_connection']) && !$checks['smtp_connection']) {
                    echo "<li><strong>Problema de conexión SMTP:</strong> Verifique que el servidor SMTP sea accesible y que el puerto no esté bloqueado</li>";
                    echo "<li><strong>Alternativas:</strong> Pruebe cambiar el puerto (587 a 465) o la encriptación (tls a ssl) en la configuración</li>";
                }
            } else {
                echo "<li><strong>⚠️ mail() no disponible:</strong> Tiene dos opciones:</li>";
                echo "<ol style='margin-left: 20px;'>";
                echo "<li><strong>Recomendado:</strong> Active SMTP en <code>config/email-config.php</code> cambiando <code>use_smtp = true</code></li>";
                echo "<li><strong>Alternativa:</strong> Active mail() siguiendo las instrucciones en la sección 1 arriba</li>";
                echo "</ol>";
            }
        }
        
        echo "<li><strong>Para hostings compartidos:</strong> Usa el email del dominio del hosting como remitente</li>";
        echo "<li><strong>Para servidores propios:</strong> Configura sendmail o un servidor SMTP</li>";
        echo "<li><strong>Logs:</strong> Los enlaces de recuperación siempre se guardan en <code>actions/password_reset_links.log</code> como respaldo</li>";
        echo "</ul>";
        echo "</div>";
        ?>

        <hr>
        <p style="text-align: center; color: #666;">
            <small>Script de diagnóstico - SIGVEM | <?php echo date('Y'); ?></small>
        </p>
    </div>
</body>
</html>

