<?php
// =============================================
// TESTE DE PHPMailer - CORRIGIDO
// =============================================

// Ativar exibição de erros
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

echo "<h1>📧 Teste de PHPMailer</h1>";

// =============================================
// 1. VERIFICAR SE O PHPMailer EXISTE
// =============================================

echo "<h2>1. Verificando PHPMailer</h2>";

$currentDir = __DIR__;
$phpmailerLoaded = false;
$loadMessage = '';

// 🔥 MÉTODO CORRIGIDO: CARREGAR DIRETAMENTE
// Tentar carregar da pasta PHPMailer/src/
if (file_exists($currentDir . '/PHPMailer/src/PHPMailer.php')) {
    require_once $currentDir . '/PHPMailer/src/PHPMailer.php';
    require_once $currentDir . '/PHPMailer/src/SMTP.php';
    require_once $currentDir . '/PHPMailer/src/Exception.php';
    $phpmailerLoaded = true;
    $loadMessage = "✅ PHPMailer carregado via PHPMailer/src/ (manual)";
}

// Tentar carregar da pasta PHPMailer/ (estrutura antiga)
if (!$phpmailerLoaded && file_exists($currentDir . '/PHPMailer/PHPMailer.php')) {
    require_once $currentDir . '/PHPMailer/PHPMailer.php';
    require_once $currentDir . '/PHPMailer/SMTP.php';
    require_once $currentDir . '/PHPMailer/Exception.php';
    $phpmailerLoaded = true;
    $loadMessage = "✅ PHPMailer carregado via PHPMailer/ (manual)";
}

// Tentar via Composer (se disponível)
if (!$phpmailerLoaded && file_exists($currentDir . '/vendor/autoload.php')) {
    require_once $currentDir . '/vendor/autoload.php';
    // Verificar se a classe foi carregada
    if (class_exists('PHPMailer\PHPMailer\PHPMailer')) {
        $phpmailerLoaded = true;
        $loadMessage = "✅ PHPMailer carregado via Composer (vendor/autoload.php)";
    } else {
        // Se a classe não foi carregada, tentar novamente manualmente
        if (file_exists($currentDir . '/vendor/phpmailer/phpmailer/src/PHPMailer.php')) {
            require_once $currentDir . '/vendor/phpmailer/phpmailer/src/PHPMailer.php';
            require_once $currentDir . '/vendor/phpmailer/phpmailer/src/SMTP.php';
            require_once $currentDir . '/vendor/phpmailer/phpmailer/src/Exception.php';
            $phpmailerLoaded = true;
            $loadMessage = "✅ PHPMailer carregado via vendor/phpmailer/phpmailer/src/";
        }
    }
}

// Tentar caminho absoluto
if (!$phpmailerLoaded) {
    $absolutePath = '/home/emissornotas/public_html/tirentulho/emissornota/PHPMailer/src/PHPMailer.php';
    if (file_exists($absolutePath)) {
        require_once $absolutePath;
        require_once dirname($absolutePath) . '/SMTP.php';
        require_once dirname($absolutePath) . '/Exception.php';
        $phpmailerLoaded = true;
        $loadMessage = "✅ PHPMailer carregado via caminho absoluto";
    }
}

if ($phpmailerLoaded) {
    echo "<p style='color:green;font-weight:bold;'>$loadMessage</p>";
} else {
    echo "<p style='color:red;font-weight:bold;'>❌ PHPMailer NÃO ENCONTRADO!</p>";
    echo "<p>Verifique se o PHPMailer está instalado na pasta correta.</p>";
    echo "<p>Execute no terminal:</p>";
    echo "<pre>cd /home/emissornotas/public_html/tirentulho/emissornota/
wget https://github.com/PHPMailer/PHPMailer/archive/refs/heads/master.zip
unzip master.zip
rm -rf PHPMailer
mv PHPMailer-master PHPMailer
rm master.zip
ls -la PHPMailer/src/</pre>";
    exit;
}

// =============================================
// 2. VERIFICAR CLASSE PHPMailer
// =============================================

echo "<h2>2. Verificando classe PHPMailer</h2>";

// 🔥 TENTAR COM NAMESPACE E SEM NAMESPACE
$classFound = false;

// Tentar com namespace (Composer)
if (class_exists('PHPMailer\PHPMailer\PHPMailer')) {
    echo "<p style='color:green;font-weight:bold;'>✅ Classe PHPMailer encontrada (com namespace)!</p>";
    $classFound = true;
    $useNamespace = true;
}

// Tentar sem namespace (manual)
if (!$classFound && class_exists('PHPMailer')) {
    echo "<p style='color:green;font-weight:bold;'>✅ Classe PHPMailer encontrada (sem namespace)!</p>";
    $classFound = true;
    $useNamespace = false;
}

if (!$classFound) {
    echo "<p style='color:red;font-weight:bold;'>❌ Classe PHPMailer não encontrada!</p>";
    echo "<p>Verifique se os arquivos foram baixados corretamente.</p>";
    
    // Verificar arquivos
    $filesToCheck = [
        'PHPMailer/src/PHPMailer.php',
        'PHPMailer/src/SMTP.php',
        'PHPMailer/src/Exception.php',
        'vendor/phpmailer/phpmailer/src/PHPMailer.php'
    ];
    
    echo "<h3>Arquivos encontrados:</h3>";
    foreach ($filesToCheck as $file) {
        $path = $currentDir . '/' . $file;
        if (file_exists($path)) {
            echo "<p style='color:green;'>✅ " . $file . " - Encontrado</p>";
        } else {
            echo "<p style='color:red;'>❌ " . $file . " - Não encontrado</p>";
        }
    }
    exit;
}

// =============================================
// 3. TESTAR ENVIO DE E-MAIL
// =============================================

echo "<h2>3. Testando envio de e-mail</h2>";

// Configurações
$smtpHost = 'mail.emissornotascontrolmaxerp.com.br';
$smtpPort = 465;
$smtpSecure = 'ssl';
$smtpAuth = true;
$smtpUser = 'naoresponda@emissornotascontrolmaxerp.com.br';
$smtpPass = 'Canal4230@';
$fromEmail = 'naoresponda@emissornotascontrolmaxerp.com.br';
$fromName = 'Emissor Nacional - Teste';

// 🔥 ALTERE PARA SEU E-MAIL PARA TESTAR
$toEmail = 'seuemail@teste.com';
$toName = 'Teste';

echo "<p><strong>Servidor SMTP:</strong> $smtpHost</p>";
echo "<p><strong>Porta:</strong> $smtpPort</p>";
echo "<p><strong>Usuário:</strong> $smtpUser</p>";
echo "<p><strong>Para:</strong> $toEmail</p>";

try {
    // 🔥 CRIAR OBJETO DO JEITO CERTO
    if ($useNamespace) {
        $mail = new PHPMailer\PHPMailer\PHPMailer(true);
    } else {
        $mail = new PHPMailer(true);
    }
    
    // Configurações do servidor
    $mail->isSMTP();
    $mail->Host       = $smtpHost;
    $mail->SMTPAuth   = $smtpAuth;
    $mail->Username   = $smtpUser;
    $mail->Password   = $smtpPass;
    $mail->SMTPSecure = $smtpSecure;
    $mail->Port       = $smtpPort;
    $mail->CharSet    = 'UTF-8';
    
    // Remetente e destinatário
    $mail->setFrom($fromEmail, $fromName);
    $mail->addAddress($toEmail, $toName);
    $mail->addReplyTo($fromEmail, $fromName);
    
    // Conteúdo
    $mail->isHTML(true);
    $mail->Subject = '✅ Teste PHPMailer - Emissor Nacional';
    $mail->Body    = '
    <html>
    <head>
        <style>
            body { font-family: Arial, sans-serif; }
            .container { max-width: 600px; margin: 0 auto; padding: 20px; border: 1px solid #ddd; border-radius: 10px; }
            .header { background: #28a745; color: white; padding: 15px; border-radius: 10px 10px 0 0; text-align: center; }
            .content { padding: 20px; }
            .footer { text-align: center; padding: 15px; font-size: 12px; color: #888; border-top: 1px solid #ddd; }
            .success { color: #28a745; font-weight: bold; font-size: 20px; }
        </style>
    </head>
    <body>
        <div class="container">
            <div class="header">
                <h2>📧 Teste PHPMailer</h2>
            </div>
            <div class="content">
                <p class="success">✅ E-mail enviado com sucesso!</p>
                <p>Este é um teste do sistema de e-mail do <strong>Emissor Nacional</strong>.</p>
                <p>Se você recebeu este e-mail, significa que o PHPMailer está configurado corretamente.</p>
                <p><strong>Data/Hora:</strong> ' . date('d/m/Y H:i:s') . '</p>
                <p><strong>Servidor:</strong> ' . $smtpHost . '</p>
            </div>
            <div class="footer">
                <p>© ' . date('Y') . ' Emissor Nacional - Sistema de Emissão de Notas Fiscais</p>
            </div>
        </div>
    </body>
    </html>
    ';
    
    $mail->AltBody = "Teste PHPMailer - Emissor Nacional\n\n";
    $mail->AltBody .= "Este é um teste do sistema de e-mail.\n";
    $mail->AltBody .= "Data/Hora: " . date('d/m/Y H:i:s');
    
    // Enviar
    if ($mail->send()) {
        echo "<p style='color:green;font-weight:bold;font-size:18px;'>✅ E-mail enviado com sucesso para $toEmail!</p>";
        echo "<p>Verifique sua caixa de entrada (e talvez a pasta de spam).</p>";
    } else {
        echo "<p style='color:red;font-weight:bold;'>❌ Erro ao enviar e-mail: " . $mail->ErrorInfo . "</p>";
    }
    
} catch (Exception $e) {
    echo "<p style='color:red;font-weight:bold;'>❌ Erro: " . $mail->ErrorInfo . "</p>";
    echo "<p style='color:#666;font-size:13px;'>Detalhes: " . $e->getMessage() . "</p>";
}

// =============================================
// 4. INFORMAÇÕES DO SISTEMA
// =============================================

echo "<h2>4. Informações do Sistema</h2>";

echo "<p><strong>PHP Version:</strong> " . phpversion() . "</p>";
echo "<p><strong>Diretório Atual:</strong> " . __DIR__ . "</p>";
echo "<p><strong>Extensões SMTP:</strong> " . (extension_loaded('openssl') ? '✅ OpenSSL' : '❌ OpenSSL') . "</p>";
echo "<p><strong>Extensões cURL:</strong> " . (extension_loaded('curl') ? '✅ cURL' : '❌ cURL') . "</p>";

// Verificar arquivos do PHPMailer
echo "<h3>Arquivos do PHPMailer:</h3>";
$files = [
    '/PHPMailer/src/PHPMailer.php',
    '/PHPMailer/src/SMTP.php',
    '/PHPMailer/src/Exception.php',
    '/vendor/autoload.php'
];

foreach ($files as $file) {
    $path = __DIR__ . $file;
    if (file_exists($path)) {
        echo "<p style='color:green;'>✅ " . $file . " - Encontrado</p>";
    } else {
        echo "<p style='color:red;'>❌ " . $file . " - Não encontrado</p>";
    }
}

echo "<hr>";
echo "<p><a href='consultar_notas.php'>← Voltar para Consultar Notas</a></p>";
?>