<?php
// include/email_cadastro_empresa.php

// Incluindo manualmente os arquivos do PHPMailer.
// O caminho '../PHPMailer-master/src/...' assume que a pasta 'PHPMailer-master'
// está um nível acima da pasta 'include'.
require_once __DIR__ . '/../PHPMailer-master/src/Exception.php';
require_once __DIR__ . '/../PHPMailer-master/src/PHPMailer.php';
require_once __DIR__ . '/../PHPMailer-master/src/SMTP.php';

use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\Exception;
use PHPMailer\PHPMailer\SMTP;

// Inclui o arquivo 'env.php' para ter acesso à função 'carregarEnv'.
// Assume que 'env.php' está na raiz do projeto, um nível acima da pasta 'include'.
require_once __DIR__ . '/../env.php';

// Carrega as variáveis do ambiente do .env para a superglobal $_ENV.
// É crucial que isso seja feito antes de tentar usar qualquer $_ENV['VAR'].
try {
    // Carrega o .env que deve estar na raiz do projeto, um nível acima de 'include'.
    carregarEnv(__DIR__ . '/../.env'); 
} catch (Exception $e) {
    // Em produção, isso deve ser apenas logado. Em desenvolvimento, pode ser fatal.
    error_log("Erro crítico ao carregar o arquivo .env em include/email_cadastro_empresa.php: " . $e->getMessage());
    // Evitar 'die' em arquivos inclusos para não parar o script principal.
}

/**
 * Envia um e-mail usando as configurações do .env e PHPMailer.
 *
 * @param string $destinatarioEmail O endereço de e-mail do destinatário.
 * @param string $destinatarioNome O nome do destinatário.
 * @param string $assunto O assunto do e-mail.
 * @param string $corpoHtml O corpo do e-mail em HTML.
 * @return bool Retorna true em caso de sucesso, false em caso de falha.
 */
function enviarEmail($destinatarioEmail, $destinatarioNome, $assunto, $corpoHtml)
{
    $mail = new PHPMailer(true); // O 'true' habilita exceções para tratamento de erros

    try {
        // Habilita a depuração SMTP. Mantenha SMTP::DEBUG_SERVER durante os testes.
        $mail->SMTPDebug = SMTP::DEBUG_SERVER; 
        $mail->isSMTP();
        $mail->Host       = $_ENV['SMTP_HOST'];
        $mail->SMTPAuth   = (bool)$_ENV['SMTP_AUTH'];
        $mail->Username   = $_ENV['SMTP_USERNAME'];
        $mail->Password   = $_ENV['SMTP_PASSWORD'];
        
        // --- CÓDIGO CRÍTICO IDÊNTICO AO email-anuncio-pago.php para SSL/TLS ---
        $smtp_secure = strtolower($_ENV['SMTP_SECURE'] ?? 'ssl');
        if ($smtp_secure === 'tls') {
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
        } else { // Assume 'ssl' ou SMTPS
            $mail->SMTPSecure = PHPMailer::ENCRYPTION_SMTPS;
        }
        $mail->Port       = (int)$_ENV['SMTP_PORT'];
        // --- FIM DO CÓDIGO CRÍTICO ---

        $mail->CharSet    = 'UTF-8';

        // Opcional: Desabilita a verificação de certificado (USE COM CAUTELA E APENAS EM TESTES!)
        // Descomente APENAS se o problema persistir APÓS as outras mudanças e a análise do log.
        /*
        $mail->SMTPOptions = array(
            'ssl' => array(
                'verify_peer' => false,
                'verify_peer_name' => false,
                'allow_self_signed' => true
            )
        );
        */

        // Remetente (quem está enviando o e-mail)
        $mail->setFrom($_ENV['SMTP_FROM_EMAIL'], $_ENV['SMTP_FROM_NAME']);

        // Destinatário (para quem o e-mail será enviado)
        $mail->addAddress($destinatarioEmail, $destinatarioNome);

        // Conteúdo do E-mail
        $mail->isHTML(true);
        $mail->Subject = $assunto;
        $mail->Body    = $corpoHtml;
        $mail->AltBody = strip_tags($corpoHtml); // Versão em texto puro para clientes que não suportam HTML

        $mail->send();
        return true;
    } catch (Exception $e) {
        // Logar o erro para depuração. Em produção, não exiba o erro completo ao usuário.
        // As mensagens de erro detalhadas estarão no log do servidor.
        error_log("ERRO PHPMailer na função enviarEmail em email_cadastro_empresa.php: Falha ao enviar e-mail para {$destinatarioEmail}: {$mail->ErrorInfo} | Detalhe: {$e->getMessage()}");
        return false;
    }
}
?>