📂 File Browser

AgentAIv3_backup
🌙 Dark Mode
🎯 Quick Launch:

📁 Directories

📁 tmp/ 🔓 Open
📁 vendor/ 🔓 Open

📄 Files

🐘 chat_handler.php
▶ Open 📄 View Source
🐘 chat_handler_test.php
▶ Open 📄 View Source
🐘 check_db.php
▶ Open 📄 View Source
🐘 cleanup.php
▶ Open 📄 View Source
🐘 config.php
▶ Open 📄 View Source
🐘 database.php
▶ Open 📄 View Source
🐘 delete_chat.php
▶ Open 📄 View Source
🐘 fetch_emails.php
▶ Open 📄 View Source
🐘 get_email.php
▶ Open 📄 View Source
🐘 index.php
▶ Open 📄 View Source
🐘 index_minimal.php
▶ Open 📄 View Source
🐘 index_simple.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
🐘 rename_chat.php
▶ Open 📄 View Source
🎨 style.css
▶ Open 📄 View Source
🐘 switch_chat.php
▶ Open 📄 View Source
🐘 sync_emails.php
▶ Open 📄 View Source
🐘 test_chat.php
▶ Open 📄 View Source
🐘 test_error.php
▶ Open 📄 View Source
🐘 test_session.php
▶ Open 📄 View Source
🐘 test_session2.php
▶ Open 📄 View Source
🐘 test_session_check.php
▶ Open 📄 View Source
🐘 test_simple.php
▶ Open 📄 View Source

📄 Source: get_email.php

<?php
session_name('INBOXZERO');
session_start();
require_once 'vendor/autoload.php';

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

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

$input = json_decode(file_get_contents('php://input'), true);
$emailId = $input['email_id'] ?? '';

if (!$emailId) {
    echo json_encode(['error' => 'No email ID provided']);
    exit();
}

try {
    $client = new Google\Client();
    $client->setAccessToken($_SESSION['access_token']);
    $service = new Google\Service\Gmail($client);
    
    $message = $service->users_messages->get('me', $emailId, ['format' => 'full']);
    $payload = $message->getPayload();
    
    $decode = function($data) {
        return base64_decode(strtr($data, '-_', '+/'));
    };
    
    $body = "";
    
    // Get plain text or HTML body
    if ($payload->getBody() && $payload->getBody()->getData()) {
        $body = $decode($payload->getBody()->getData());
    }
    
    if (empty($body) && $payload->getParts()) {
        foreach ($payload->getParts() as $part) {
            if ($part->getBody() && $part->getBody()->getData()) {
                $body = $decode($part->getBody()->getData());
                if (!empty(trim($body))) break;
            }
            if ($part->getParts()) {
                foreach ($part->getParts() as $subPart) {
                    if ($subPart->getBody() && $subPart->getBody()->getData()) {
                        $body = $decode($subPart->getBody()->getData());
                        if (!empty(trim($body))) break 2;
                    }
                }
            }
        }
    }
    
    // Clean HTML aggressively
    // Remove style blocks
    $body = preg_replace('/<style[^>]*>.*?<\/style>/is', '', $body);
    // Remove script blocks
    $body = preg_replace('/<script[^>]*>.*?<\/script>/is', '', $body);
    // Remove HTML tags but keep line breaks
    $body = strip_tags($body);
    // Decode HTML entities
    $body = html_entity_decode($body, ENT_QUOTES | ENT_HTML5, 'UTF-8');
    // Remove excessive whitespace
    $body = preg_replace('/\s+/', ' ', $body);
    // Remove common email footer patterns
    $body = preg_replace('/To help keep your profile secure.*$/is', '', $body);
    $body = preg_replace('/https?:\/\/[^\s]+/i', '', $body);
    $body = preg_replace('/unsubscribe.*$/i', '', $body);
    $body = trim($body);
    
    if (strlen($body) > 2000) {
        $body = substr($body, 0, 2000) . "\n\n...(truncated)";
    }
    
    if (empty($body) || strlen($body) < 10) {
        $body = "(No readable content in this email)";
    }
    
    echo json_encode(['content' => $body]);
    
} catch (Exception $e) {
    echo json_encode(['error' => $e->getMessage()]);
}
?>
← Back