Files
odysseus/docs/discovery/domains/email.md
T

88 lines
3.1 KiB
Markdown

# Email
Features in this document are generated from [`../feature-catalog.json`](../feature-catalog.json), the canonical inventory.
## EMAIL-001 — Email Account Setup, IMAP/SMTP Connection & Polling
- **Domain**: `email`
- **Status**: `verified`
- **Evidence Maturity**: `E1`
- **Commit Verified**: `d8a2059df8e53bc7275c45339849d14c8651e73c`
- **Runtime Validation**: pending — Requires a controlled live IMAP account and network access.
### Purpose
Configures IMAP/SMTP email accounts, validates TLS certificates, and polls background inbox updates.
### Evidence summary
- `routes/email_routes.py` — `setup_email_routes` — Sets up email account management and synchronization routes.
- `routes/email_pollers.py` — `_start_poller` — Background poller for email inbox synchronization.
- `tests/test_service_health_email.py` — `test_email_ok_all_connect` — Tests IMAP connection health probing and status reporting.
### Unknowns
- Account lockouts if bad credentials are repeatedly polled.
## EMAIL-002 — Email Searching, Threading & Message Operations
- **Domain**: `email`
- **Status**: `verified`
- **Evidence Maturity**: `E0`
- **Commit Verified**: `d8a2059df8e53bc7275c45339849d14c8651e73c`
- **Runtime Validation**: not-required — No separate environment-dependent runtime validation was identified during this documentation pass.
### Purpose
Parses email headers, folds signatures, groups messages into threads, and executes full-text email search.
### Evidence summary
- `routes/email_routes.py` — `@router.get('/search')` — Executes search across cached email headers and text.
- `src/email_thread_parser.py` — `parse_email_thread` — Builds conversation tree from Message-ID and In-Reply-To headers.
### Unknowns
- Malformed MIME email structures failing HTML sanitization.
## EMAIL-003 — Email Composition, Draft Management & Sending
- **Domain**: `email`
- **Status**: `verified`
- **Evidence Maturity**: `E0`
- **Commit Verified**: `d8a2059df8e53bc7275c45339849d14c8651e73c`
- **Runtime Validation**: pending — Requires a controlled live SMTP account and network access.
### Purpose
Creates, saves, and dispatches HTML/plaintext email messages via SMTP.
### Evidence summary
- `routes/email_routes.py` — `@router.post('/send')` — Sends email message via user SMTP credentials.
### Unknowns
- SMTP connection drop mid-send causing unsent mail state.
## EMAIL-004 — Email MCP Server & Codex Integration Bridge
- **Domain**: `email`
- **Status**: `verified`
- **Evidence Maturity**: `E0`
- **Commit Verified**: `d8a2059df8e53bc7275c45339849d14c8651e73c`
- **Runtime Validation**: not-required — No separate environment-dependent runtime validation was identified during this documentation pass.
### Purpose
Exposes constrained email reading and draft capabilities to external Codex / MCP agents with scope checks.
### Evidence summary
- `mcp_servers/email_server.py` — `EmailMcpServer` — MCP server exposing email tools over stdio/SSE.
- `routes/codex_routes.py` — `setup_codex_routes` — Bridge endpoints for external Codex plugin integration.
### Unknowns
- Unauthorized mail sending if token scopes are improperly scoped.