Email Integration
Interact with any IMAP/SMTP mail server on behalf of the user.
Path conventions
Paths are relative to this skill's Base Directory. Replace <skill-base-dir> with its absolute path in commands.
Security (mandatory)
- NEVER ask for passwords in chat or display
~/.libragent/email_config - Collect password only via a single hidden shell prompt; persist with
setup_account.py - If the user pastes a secret in chat, do not echo it—run setup immediately
Workflow
1. Detect config
python "<skill-base-dir>/scripts/validate_config.py"
- Exit
0→ configured, go to step 3 - Exit
1→ not configured, go to step 2 - Exit
2→ corrupt config, go to step 2 with--reset
2. Setup (first time or reset)
See references/setup-flow.md for the full PowerShell two-step pattern and preset/custom domain commands.
3. Dispatch action
Classify the request and call email_client.py:
| Action | When | Command |
|---|---|---|
read_inbox |
Browse inbox | --action read_inbox [--limit N] [--filter unread|today|all] |
read_email |
Full content by UID | --action read_email --uid <UID> |
send_email |
Compose/send/reply | --action send_email --to ... --subject ... --body ... [--reply-to-uid <UID>] |
search_email |
Keyword/sender/date | --action search_email --query "<IMAP search>" |
manage_email |
Mark/move/delete | --action manage_email --uid <UID> --op <mark_read|mark_unread|move|delete> |
Search query examples: see references/request-patterns.md. Server presets: see references/server-profiles.md.
Draft vague compose requests yourself; confirm with the user before sending. For bulk delete/move, confirm count first.
4. Present results
See references/output-format.md. Errors: references/error-handling.md.