Outlook Mail Plus Documentation

repository·main·Indexed 23 days ago

https://github.com/zeropointsix/outlookemailplus

A specialized email management system optimized for high-frequency registration and verification workflows. It features an intelligent email pool with project isolation, automated verification code extraction via regex, and a Chrome/Edge browser extension to streamline the claim-extract-complete lifecycle. Supports Gmail, QQ, 163, custom IMAP servers, and Cloudflare Worker temporary emails, with integration for Telegram notifications and Microsoft OAuth token configuration.

Tokens
214.4K
Snippets
309
Records
873
Agent score
77%

What's inside Outlook Mail Plus

  1. What is OutlookMail Plus

    main
    OutlookMail Plus is a specialized mailbox manager designed for individuals and teams focused on registration and verification workflows. Unlike general-purpose email clients, it is optimized for speed in completing signup flows by providing features like one-click mailbox address copying, automated verification code/link extraction via regex, and automation-friendly APIs for batch registration.
  2. Overview of the OAuth Token Acquisition Tool

    main

    The OAuth Token Acquisition Tool is a standalone utility within Outlook Email Plus designed to help users interactively log in to Microsoft accounts to obtain a refresh_token. It operates in a separate browser window (opened via window.open()) to avoid disrupting the main application's SPA state.

    Key features include:

    • OAuth2 + PKCE: Uses Authorization Code Flow with PKCE (S256). In the current implementation, client_secret is disabled to support a compatible account import mode.
    • Smart Callbacks: Automatically handles redirects in standard environments, with a manual fallback (pasting the callback URL) for remote deployments like Docker or reverse proxies.
    • One-Click Writing: Once the token is acquired, users can instantly write it to an existing account or create a new one.
    • Configuration Persistence: OAuth parameters are saved to the server's Settings table, allowing for cross-device synchronization.
  3. Overview of Outlook Mail Plus

    main

    Outlook Mail Plus is a specialized email account manager designed for individuals and teams focused on registration and verification workflows. Unlike general-purpose email clients, it optimizes for minimizing friction during sign-up processes.

    Key Features:

    • Registration Optimized: Features one-click email copying and automated verification code/link extraction using regex.
    • Broad Import Support: Supports Gmail, QQ, 163, custom IMAP servers, and built-in Cloudflare Worker temporary emails.
    • Automation Ready: Provides external APIs for batch registration and an email pool system with project isolation.
    • Notification Support: Integrates with Telegram for automated alerts when important emails arrive.
    • Browser Extension: Offers a Chrome/Edge (Manifest V3) extension to automate the claim-extract-complete lifecycle without switching tabs.
  4. Overview of OutlookMail Plus

    main
    OutlookMail Plus is a mailbox manager specifically optimized for registration and verification workflows. Unlike standard email clients, it focuses on speeding up signup flows by providing tools to quickly fetch verification emails and extract codes or links using regex. It is designed for both individuals and teams handling high-volume registration tasks.
  5. Overview of the OutlookMail Plus Browser Extension

    main

    The OutlookMail Plus browser extension (Manifest V3) is a companion tool for Chrome and Edge. It provides a lightweight popup interface to manage the entire email lifecycle without injecting code into web pages.

    Core Capabilities:

    • Quick Access: Invoke a minimal popup via keyboard shortcuts or icon clicks.
    • Lifecycle Management: Perform the full flow of Claim EmailUseGet Verification Code/LinkComplete/Release.
    • Data Handling: Results (emails, codes, links) are provided via one-click copy.
    • Persistence: Claim history is stored locally for offline viewing.
    • Theming: Supports dark/light mode synchronization with the main application.

    Prerequisites:

    • The main application must have external pool enabled.
    • If using multiple API keys, the key must have pool_access permissions.
  6. Implement Temporary Mail Provider Plugin System

    main

    This project implements a plugin architecture for temporary email providers. The system allows for dynamic registration, loading, and management of email providers via a registry and decorator pattern.

    Core Architecture

    • Registry Pattern: Uses a central _REGISTRY to map provider names to their respective classes.
    • Decorator-based Registration: Providers are registered using the @register_provider decorator.
    • Layered Architecture: Follows a strict Route → Controller → Service → Repository pattern. Cross-layer calls are prohibited.
    • Plugin Lifecycle: Supports scanning plugin directories, hot-reloading (without container restart), installation, and uninstallation.

    Technical Stack

    • Backend: Python 3.11+, Flask 3.0+, SQLite (WAL)
    • Frontend: Native JS, CSS using project design variables
    • Deployment: Docker (requires volume mapping ./plugins:/app/plugins for persistence)
  7. Review the evolution of Outlook Email Plus capabilities

    main

    The project has undergone significant evolution from v1.x to v2.x. Key milestones include:

    • v1.2: UI global redesign and CI/CD improvements.
    • v1.3: Unified multi-mailbox management.
    • v1.4: Seamless account import/export migration.
    • v1.5.x: Telegram real-time push, deduplication stability, and Microsoft Refresh Token rolling updates.
    • v1.6.x: External API security layer and asynchronous wait-message probing.
    • v1.8.0: Delivery of Mailbox Pool and External Pool APIs.
    • v1.9.x: Bilingual interface, unified notification distribution, and frontend refactoring.
    • v1.11 - v1.13: Platformization of temporary email, project isolation, and one-click hot updates.
    • v1.15 - v1.19: AI CAPTCHA enhancement, OAuth Token tools, and Webhook support.
    • v2.0.0: Official release of the Browser Extension.
    • v2.1.0: Data overview dashboard and unified extraction pipeline observability.
  8. Technical Goals for the Browser Extension Quick Operation Panel

    main

    The Browser Extension Quick Operation Panel (target version v0.1.0) is designed to achieve the following:

    • Local Installability: Supports loading via Developer Mode and future .crx packaging.
    • Dynamic Server Support: Enables cross-origin requests to any user-provided self-hosted address without Chrome interception.
    • State Persistence: Maintains current tasks and history across Popup sessions.
    • Popup Lifecycle Safety: Ensures data is not lost when the Popup is closed; tasks can be recovered upon reopening.
    • Minimal Main App Impact: Requires only supplementary CORS source configuration without adding new interfaces or database changes.
  9. Test execution strategy for Compact Mode Auto-Polling

    main

    The testing for the Compact Mode Auto-Polling feature is organized into three hierarchical layers. To ensure full coverage, follow this execution order: first run the Python tests (Layers A and B), then run the Jest tests (Layer C).

    LayerFileFrameworkTest Objective
    A. Backend API Contracttests/test_compact_poll_settings.pyPython unittestValidates GET/PUT, field validation, defaults, and persistence for 3 settings fields.
    B. Frontend Contracttests/test_compact_poll_frontend_contract.pyPython unittestEnsures existence of HTML elements, JS variables, CSS classes, and i18n entries.
    C. JS Unittests/compact-poll/compact-poll-engine.test.jsJest + jsdomTests core polling engine logic (event triggering, re-entrancy prevention, timeouts, parallelism).
  10. Overview Dashboard Frontend Architecture

    main

    The Data Overview Dashboard (replacing the old page-dashboard) uses a 5-Tab structure. It utilizes existing CSS classes (settings-tab-nav, settings-tab, settings-tab-pane) with a .ov-* prefix for specialized styling. The UI follows an 'Apple-style glass card' design with rounded panels, soft shadows, and custom hover notes instead of native browser tooltips.

    Key Frontend Modules (static/js/features/overview.js):

    • initOverview(): Initializes tab switching and refresh button bindings.
    • switchOverviewTab(tabId): Switches tabs and triggers lazy loading.
    • loadOverviewTab(tabId): Orchestrates API requests and rendering for a specific tab.
    • fetchOverviewData(tabId): Fetches data from /api/overview/* endpoints.
    • renderDataCard(options): Renders glass-style data cards (title, badge, hover note, body).
    • renderBarChart(container, data): Renders CSS-based bar charts (Tab 3).
    • renderTimeline(container, events): Renders timeline items (Tab 5).

    Loading & Caching Strategy:

    • Initial Load: Entering the dashboard automatically loads the current tab and forces a fresh fetch from the backend.
    • Lazy Loading: Other tabs are loaded only upon the first click and results are cached.
    • Manual Refresh: The refresh button clears all tab caches and reloads the current tab.
    • Event-Driven Updates: When a verification code extraction succeeds, the frontend emits an overview-data-changed event, which invalidates caches for summary, verification, and activity. If the overview page is currently visible, it triggers an immediate reload.
  11. Understand the implementation requirements for Issue #55 (Batch Email Fetching)

    main

    Issue #55 refers to supporting the batch fetching of emails after selecting multiple accounts in Standard Mode.

    Key Technical Context:

    • Infrastructure exists: The project already supports multi-account selection in Standard Mode via account-select-checkbox (rendered in static/js/features/groups.js), selectedAccountIds (maintained in static/js/main.js), and the batchActionBar (in templates/index.html).
    • Current Limitation: The existing email fetching logic is a single-account model. static/js/features/accounts.js uses currentAccount to drive the email pane, and static/js/features/emails.js uses loadEmails(email, forceRefresh) to fetch for a single address via the /api/emails/<email_addr> endpoint.

    Implementation Strategy: Instead of refactoring the entire browsing model into a mixed multi-account list, the recommended approach is to enhance the Standard Mode batch actions to:

    1. Add a "Batch Fetch Emails" action to the batchActionBar.
    2. Reuse selectedAccountIds and existing batch interaction patterns.
    3. Implement this as batch pre-fetching/warming of email caches or batch refreshing of the latest email status for selected accounts, while keeping the right-side email panel focused on single-account semantics.
  12. Resolve Mailboxes using Mailbox Descriptors

    main

    The system uses a mailbox_resolver to abstract the difference between standard accounts (Outlook/IMAP) and temporary mailboxes. Instead of relying solely on the accounts table, the reading logic uses a mailbox descriptor to determine how to fetch messages.

    A mailbox descriptor follows this structure:

    {
      "kind": "account | temp",
      "email": "demo@example.com",
      "source": "outlook | imap | custom_temp",
      "status": "active",
      "read_capability": "graph | imap | temp_provider",
      "meta": {}
    }

    Reading Workflow:

    1. Call mailbox_resolver.resolve_mailbox(email_addr).
    2. If kind == account: Use existing graph or imap flows.
    3. If kind == temp: Use the temp_mail_service reading flow.