📂 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: sync_emails.php

<?php
session_name('INBOXZERO');
session_set_cookie_params(0, '/', '', false, true);
session_start();

require_once 'vendor/autoload.php';
require_once 'database.php';

echo "🔄 Starting email sync...\n";

if (!isset($_SESSION['access_token'])) {
    echo "Not authenticated. Please login first in the browser.\n";
    exit();
}

$client = new Google\Client();
$client->setAccessToken($_SESSION['access_token']);
$service = new Google\Service\Gmail($client);
$db = new ChatDatabase();

// Create email storage table if not exists
$db->exec("
    CREATE TABLE IF NOT EXISTS stored_emails (
        id TEXT PRIMARY KEY,
        thread_id TEXT,
        from_address TEXT,
        subject TEXT,
        date_received DATETIME,
        content TEXT,
        is_read INTEGER DEFAULT 0,
        labels TEXT,
        synced_at DATETIME DEFAULT CURRENT_TIMESTAMP
    )
");

$optParams = ['maxResults' => 50, 'labelIds' => ['INBOX']];
$messages = $service->users_messages->listUsersMessages('me', $optParams);

$count = 0;
if ($messages->getMessages()) {
    foreach ($messages->getMessages() as $msg) {
        // Check if email already exists
        $stmt = $db->prepare("SELECT id FROM stored_emails WHERE id = :id");
        $stmt->bindValue(':id', $msg->getId(), SQLITE3_TEXT);
        $result = $stmt->execute();
        $exists = $result->fetchArray();
        
        if (!$exists) {
            $message = $service->users_messages->get('me', $msg->getId(), [
                'format' => 'metadata',
                'metadataHeaders' => ['From', 'Subject', 'Date']
            ]);
            
            $headers = $message->getPayload()->getHeaders();
            $from = '';
            $subject = '';
            $date = '';
            
            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'));
                $dateFormatted = $dateObj->format('Y-m-d H:i:s');
            } catch (Exception $e) {
                $dateFormatted = date('Y-m-d H:i:s');
            }
            
            $stmt = $db->prepare("
                INSERT INTO stored_emails (id, thread_id, from_address, subject, date_received, is_read)
                VALUES (:id, :tid, :from, :subject, :date, 0)
            ");
            $stmt->bindValue(':id', $msg->getId(), SQLITE3_TEXT);
            $stmt->bindValue(':tid', $msg->getThreadId(), SQLITE3_TEXT);
            $stmt->bindValue(':from', $from, SQLITE3_TEXT);
            $stmt->bindValue(':subject', $subject, SQLITE3_TEXT);
            $stmt->bindValue(':date', $dateFormatted, SQLITE3_TEXT);
            $stmt->execute();
            $count++;
        }
    }
}

echo "✅ Saved $count new emails to local database.\n";
echo "Total emails in database: " . $db->querySingle("SELECT COUNT(*) FROM stored_emails") . "\n";
?>
← Back