← Back to Skills Marketplace
echovic

QQMail Organizer

by 青雲 · GitHub ↗ · v0.1.0 · MIT-0
cross-platform ⚠ pending
39
Downloads
0
Stars
0
Active Installs
1
Versions
Install in OpenClaw
/install qqmail-organizer
Description
Agent-facing QQ Mail inbox management over IMAP/SMTP for OpenClaw, Hermes, and other autonomous agents. Use when an agent must read, search, reply to, classi...
README (SKILL.md)

QQMail Organizer

Agent Contract

Use this skill as an execution protocol for agents, not as a human walkthrough. The agent should operate the bundled scripts, summarize results, preserve safety boundaries, and avoid exposing credentials or unnecessary private email content.

Core behavior:

  • Prefer deterministic script calls over hand-written IMAP/SMTP snippets.
  • Prefer --json for parent-agent orchestration when using plan-organize or auto-organize.
  • Treat plan-organize and default auto-organize as safe read-only planning.
  • Treat --apply, archive without --dry-run, mark-* without --dry-run, send without --dry-run, reply without --dry-run, and delete as mutations.
  • Require explicit user approval before destructive or externally visible actions.
  • Report concise summaries, matched counts, categories, and proposed actions instead of dumping full inbox content.

Credentials are read only from environment variables:

  • QQMAIL_USER: QQ email address.
  • QQMAIL_AUTH_CODE: QQ Mail IMAP/SMTP authorization code, not the account password.

Never print, persist, or place QQMAIL_AUTH_CODE in prompts, reports, cron jobs, memory, commits, or rule files.

Decision Protocol

  1. For "look at my mail", "what is important", "clean my inbox", or ambiguous organization requests, start with:
python3 scripts/qqmail.py plan-organize --limit 50 --json
  1. For rule-based cleanup, preview first. This is dry-run by default:
python3 scripts/qqmail.py auto-organize --limit 100 --json
  1. Apply only after the user explicitly confirms the rule/action set:
python3 scripts/qqmail.py auto-organize --limit 100 --apply
  1. For a specific requested move, mark, send, or reply, run a narrow command. Use --dry-run first for bulk move/mark/delete operations.

  2. For permanent deletion, do not infer intent. Ask or require explicit wording such as "delete permanently".

Output Protocol

When reporting to a user or parent agent:

  • State whether the operation was read-only, dry-run, or applied.
  • Group results by category or action.
  • Include sender, subject, date, and count. Avoid full body content unless the user asks to read a specific message.
  • For parent agents, parse --json output instead of scraping human-readable text.
  • For dry-run cleanup, list the exact actions that would occur and the command needed to apply them.
  • If credentials, IMAP, or SMTP fail, report the failing boundary without printing secrets.

Commands For Agents

Read and inspect:

python3 scripts/qqmail.py folders
python3 scripts/qqmail.py inbox --limit 20
python3 scripts/qqmail.py inbox --unread --limit 20
python3 scripts/qqmail.py read --index 1
python3 scripts/qqmail.py search --from "[email protected]"
python3 scripts/qqmail.py search --subject "keyword" --since "2026-06-01"

Send and reply:

python3 scripts/qqmail.py send --to "[email protected]" --subject "Hello" --body "Message" --dry-run
python3 scripts/qqmail.py send --to "[email protected]" --subject "Hello" --body "Message"
python3 scripts/qqmail.py reply --index 1 --body "Reply text" --dry-run
python3 scripts/qqmail.py reply --index 1 --body "Reply text"

Organize safely:

python3 scripts/qqmail.py plan-organize --limit 50 --json
python3 scripts/qqmail.py auto-organize --limit 100 --json
python3 scripts/qqmail.py mkdir "GitHub"
python3 scripts/qqmail.py archive --from "[email protected]" --target "GitHub" --dry-run
python3 scripts/qqmail.py mark-read --index 1 --dry-run
python3 scripts/qqmail.py mark-unread --from "[email protected]" --dry-run

Delete is available but should be used only after explicit user confirmation:

python3 scripts/qqmail.py delete --index 1 --dry-run
python3 scripts/qqmail.py delete --index 1 --confirm-delete DELETE

Rules

Rule-based organization uses rules.agent.json by default. This default policy intentionally contains no rules, so packaged skill behavior never archives, marks, or moves mail based on public sample preferences. Agents should generate or select an explicit --rules /path/to/rules.json only after the user has approved the mailbox policy.

Use rules.schema.json as the machine-readable contract for generated policy files. The script also validates rules before planning or applying them.

Rules support matching by sender, subject, or inferred category, and actions such as:

  • archive: copy to a target folder, then remove from source.
  • mark-read: add the Seen flag.
  • mark-unread: remove the Seen flag.
  • review: classify only, do not mutate.

For personalized cleanup, write a private rules file outside the public skill repo and call:

python3 scripts/qqmail.py validate-rules --rules /path/to/rules.json --json
python3 scripts/qqmail.py auto-organize --rules /path/to/rules.json --limit 100 --json
python3 scripts/qqmail.py auto-organize --rules /path/to/rules.json --limit 100 --apply --json

Only run the --apply command after the user approves the exact action set from the dry-run JSON.

Safety Policy For Agent Runtimes

  • Prefer plan-organize before any mutation.
  • Use --dry-run for manual archive, delete, and mark operations before applying.
  • auto-organize is dry-run unless --apply is present.
  • Use send --dry-run and reply --dry-run before externally visible messages unless the user already approved the exact content.
  • delete refuses to run without --confirm-delete DELETE; still require explicit user approval first.
  • Never run delete unless the user explicitly asks for permanent deletion.
  • Never create automatic reply, delete, or archive cron jobs without explicit user confirmation.
  • Do not log or commit QQ Mail authorization codes.
  • Do not use this skill as a background auto-responder without a human-approved policy.
  • Do not treat marketing/newsletter classification as permission to delete.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install qqmail-organizer
  3. After installation, invoke the skill by name or use /qqmail-organizer
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.1.0
Initial OpenClaw market release with agent-safe QQ Mail triage, JSON dry-runs, private rule validation, and guarded mutations.
Metadata
Slug qqmail-organizer
Version 0.1.0
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 1
Frequently Asked Questions

What is QQMail Organizer?

Agent-facing QQ Mail inbox management over IMAP/SMTP for OpenClaw, Hermes, and other autonomous agents. Use when an agent must read, search, reply to, classi... It is an AI Agent Skill for Claude Code / OpenClaw, with 39 downloads so far.

How do I install QQMail Organizer?

Run "/install qqmail-organizer" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is QQMail Organizer free?

Yes, QQMail Organizer is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does QQMail Organizer support?

QQMail Organizer is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created QQMail Organizer?

It is built and maintained by 青雲 (@echovic); the current version is v0.1.0.

💬 Comments