📂 File Browser

/AgentAIv3
🌙 Dark Mode
🎯 Quick Launch:

📁 Directories

📁 tmp/ 🔓 Open
📁 vendor/ 🔓 Open

📄 Files

📄 README.md
▶ Open 📄 View Source
📝 README.txt
▶ Open 📄 View Source
📝 README_content.txt
▶ Open 📄 View Source
🐘 chat_handler.php
▶ Open 📄 View Source
🐘 check_auth.php
▶ Open 📄 View Source
🐘 cleanup.php
▶ Open 📄 View Source
📄 composer.json
▶ Open 📄 View Source
🐘 database.php
▶ Open 📄 View Source
🐘 debug_email.php
▶ Open 📄 View Source
🐘 debug_email_parts.php
▶ Open 📄 View Source
🐘 debug_emails.php
▶ Open 📄 View Source
🐘 delete_chat.php
▶ Open 📄 View Source
🐘 fetch_emails.php
▶ Open 📄 View Source
🐘 find_models.php
▶ Open 📄 View Source
🐘 gemini_direct.php
▶ Open 📄 View Source
🐘 get_chats.php
▶ Open 📄 View Source
🐘 get_email.php
▶ Open 📄 View Source
🐘 index.php
▶ Open 📄 View Source
🐘 index_simple.php
▶ Open 📄 View Source
🐘 index_test.php
▶ Open 📄 View Source
🐘 logout.php
▶ Open 📄 View Source
🐘 mark_read.php
▶ Open 📄 View Source
🐘 new_chat.php
▶ Open 📄 View Source
🐘 oauth2callback.php
▶ Open 📄 View Source
🐘 refresh_token.php
▶ Open 📄 View Source
🐘 rename_chat.php
▶ Open 📄 View Source
🐘 session_config.php
▶ Open 📄 View Source
🎨 style.css
▶ Open 📄 View Source
🐘 switch_chat.php
▶ Open 📄 View Source
🐘 sync_emails.php
▶ Open 📄 View Source
🐘 test_ajax.php
▶ Open 📄 View Source
🐘 test_api.php
▶ Open 📄 View Source
🐘 test_cmd.php
▶ Open 📄 View Source
🐘 test_curl.php
▶ Open 📄 View Source
🐘 test_db.php
▶ Open 📄 View Source
🐘 test_db_ops.php
▶ Open 📄 View Source
🐘 test_endpoint.php
▶ Open 📄 View Source
🐘 test_ollama.php
▶ Open 📄 View Source
🐘 test_ollama_direct.php
▶ Open 📄 View Source
🐘 test_openrouter.php
▶ Open 📄 View Source
🐘 test_shell.php
▶ Open 📄 View Source

📄 Source: fetch_emails.php

<?php
session_name('INBOXZERO');
session_start();

header('Content-Type: application/json');

if (!isset($_SESSION['access_token'])) {
    echo json_encode(['error' => 'Not authenticated']);
    exit();
}

try {
    require_once 'vendor/autoload.php';
    
    $client = new Google\Client();
    $client->setAccessToken($_SESSION['access_token']);
    $service = new Google\Service\Gmail($client);
    
    // Set timeout
    $client->setHttpClient(new GuzzleHttp\Client(['timeout' => 30]));
    
    $optParams = ['maxResults' => 20, 'labelIds' => ['INBOX']];
    $messages = $service->users_messages->listUsersMessages('me', $optParams);
    
    $emails = [];
    if ($messages->getMessages()) {
        foreach ($messages->getMessages() as $message) {
            $msg = $service->users_messages->get('me', $message->getId(), [
                'format' => 'metadata', 
                'metadataHeaders' => ['From', 'Subject', 'Date']
            ]);
            
            $headers = $msg->getPayload()->getHeaders();
            $from = 'Unknown';
            $subject = '(no subject)';
            $date = '';
            $threadId = $message->getThreadId();
            
            foreach ($headers as $header) {
                if ($header->getName() == 'From') $from = $header->getValue();
                if ($header->getName() == 'Subject') $subject = $header->getValue();
                if ($header->getName() == 'Date') $date = $header->getValue();
            }
            
            try {
                $dateObj = new DateTime($date);
                $dateObj->setTimezone(new DateTimeZone('Europe/Bucharest'));
                $date = $dateObj->format('d M Y, H:i');
            } catch (Exception $e) {
                $date = 'unknown date';
            }
            
            $emails[] = [
                'id' => $message->getId(),
                'threadId' => $threadId,
                'from' => htmlspecialchars($from),
                'subject' => htmlspecialchars($subject),
                'date' => htmlspecialchars($date)
            ];
        }
    }
    
    // Newest first
    $emails = array_reverse($emails);
    echo json_encode($emails);
    
} catch (Exception $e) {
    echo json_encode(['error' => $e->getMessage()]);
}
?>
← Back