[ 'name' => BREVO_FROM_NAME, 'email' => BREVO_FROM_EMAIL ], 'to' => [ [ 'email' => $para, 'name' => $para ] ], 'subject' => $asunto, 'htmlContent' => $esHTML ? $mensaje : nl2br(htmlspecialchars($mensaje)), 'textContent' => $mensaje ]; // Preparar headers $headers = [ 'Content-Type: application/json', 'api-key: ' . BREVO_API_KEY, 'Accept: application/json' ]; // Inicializar cURL $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, BREVO_API_URL); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($ch, CURLOPT_TIMEOUT, 10); // Ejecutar $respuesta = curl_exec($ch); $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $error = curl_error($ch); curl_close($ch); // Verificar respuesta if ($error) { error_log('Brevo API Error: ' . $error); return false; } if ($http_code >= 200 && $http_code < 300) { error_log('Email enviado exitosamente a ' . $para); return true; } else { error_log('Brevo API HTTP ' . $http_code . ': ' . $respuesta); return false; } } catch (Exception $e) { error_log('Brevo Exception: ' . $e->getMessage()); return false; } } /** * Función fallback usando mail() nativa */ function enviarEmailFallback($para, $asunto, $mensaje) { $headers = "From: " . BREVO_FROM_NAME . " <" . BREVO_FROM_EMAIL . ">\r\n"; $headers .= "Reply-To: " . BREVO_FROM_EMAIL . "\r\n"; $headers .= "Content-Type: text/plain; charset=UTF-8\r\n"; return @mail($para, $asunto, $mensaje, $headers); } ?>