Install
openclaw skills install 126mail-cleanupUse this skill when the user wants to clean up, back up, or optimize their 126.com (NetEase) email account. Covers local backup, spam/subscription bulk delet...
openclaw skills install 126mail-cleanupA step-by-step assistant for cleaning up, backing up, and optimizing your NetEase 126.com email account via IMAP. Designed to help reclaim cloud storage, reduce clutter, and create a reliable local archive.
| Command | Description |
|---|---|
/126mail setup | Configure IMAP credentials and verify connection |
/126mail backup | Download emails to local storage (supports resume) |
/126mail classify | Scan and classify all emails by sender domain |
/126mail cleanup | Interactively bulk-delete ads/subscriptions |
/126mail strip | Download large attachments locally, then replace originals with lightweight stubs on server |
/126mail status | Show current mailbox stats and cleanup progress |
Provide your credentials when prompted:
MAIL126_ADDRESS=your_email@126.com
MAIL126_AUTH_CODE=your_authorization_code
Run /126mail setup to test the IMAP connection. The skill will:
imap.126.com:993 (SSL)126.com IMAP has several quirks. This skill handles them automatically, but here is the reference for transparency:
| Item | Value |
|---|---|
| Server | imap.126.com |
| Port | 993 (SSL) |
| Auth | LOGIN with authorization code (not password) |
| ID Command | REQUIRED — must send ID ("name" "IMAPClient" "version" "1.0.0" ...) after login, or server rejects operations |
Chinese folder names are encoded. Common mappings:
| Display Name | IMAP Name |
|---|---|
| 已发送 (Sent) | &XfJT0ZAB- |
| 草稿箱 (Drafts) | &g0l6P3ux- |
| 已删除 (Trash) | &XfJSIJZk- |
| 垃圾邮件 (Spam) | &V4NXPpCuTvY- |
| Operation | Limit |
|---|---|
| FETCH (download) | ~4GB per session before throttling |
| SEARCH, SIZE queries | Unlimited |
| UID SEARCH ALL | ~3 seconds |
| UID SEARCH FROM | ~35 seconds per query |
| UID COPY | ~0.25 sec/email, optimal batch = 50 |
This is the most important lesson. IMAP sequence numbers shift after any deletion. If you delete email #5, then email #6 becomes #5, #7 becomes #6, etc. Using sequence numbers after deletions WILL operate on wrong emails. Always use UID FETCH, UID STORE, UID COPY, UID SEARCH.
/126mail backup)message.eml with a _meta.json sidecarbackup_dir/folder_name/UID_subject/_download_progress.json| Decision | Options | Recommendation |
|---|---|---|
| Which folders to back up | All / INBOX only / Custom | Start with INBOX + Sent |
| Include attachments | Yes / Skip large ones | Yes (they're your data) |
| Batch size | 100-500 emails | 500 (maximize before rate limit) |
/126mail classify)all_emails_meta.json (full index) and email_classification.json| Decision | Options | Recommendation |
|---|---|---|
| Classification strictness | Aggressive / Conservative | Conservative — review before delete |
| Time cutoff for deletion | All time / Before 2025 / Custom | Before current year (keep recent) |
| Domain whitelist | Auto / Manual review | Always manually review KEEP list |
/126mail cleanup)UID STORE +FLAGS \Deleted + EXPUNGEINBOX emails ──UID COPY──> 广告邮件夹 (staging copy)
│
└── UID STORE \Deleted + EXPUNGE (remove from INBOX)
User verifies in web client...
广告邮件夹 ──permanent delete──> Gone (only after user confirms)
| Decision | Options | Recommendation |
|---|---|---|
| Deletion scope | By domain / By category / By date | By domain — most precise |
| Staging folder | Create new / Use existing | Create "广告邮件" for review |
| When to purge staging | Immediately / After 7 days / Manual | Manual — check in web client first |
| Verification sample size | 5 / 10 / 20 | 10 random emails |
linkedin.com, crunchbase.com, amazon.com, jd.com,
service.taobao.com, airbnb.com, booking.com, uber.com,
ctrip.com, trip.com, godaddy.com, coursera.org,
service.netease.com, insideapple.apple.com,
accounts.google.com, intl.paypal.com, citibank.com,
mail.meituan.com, sf-express.com, ...
svb.com, gusto.com, berkeley.edu, alibaba-inc.com,
live.com, 139.com, pku.edu.cn, ...
Always let the user review and customize these lists based on their own email history.
/126mail strip)Phase A — Download Only (read-only, no server changes)
_meta.json) for each_progress.jsonPhase B — Strip and Replace (destructive, requires explicit confirmation)
[附件已移除 - 已备份到本地] with file list and original size| Before | After | Saved |
|---|---|---|
| 70 emails @ 50-200MB each | 70 emails @ 5-50KB each | ~3.4GB |
| Decision | Options | Recommendation |
|---|---|---|
| Size threshold | 10MB / 20MB / 50MB / 100MB | 50MB (best ROI) |
| Which folders | All / INBOX only | All folders |
| Verify downloads before stripping | Yes / Skip | Always Yes — Phase B is destructive |
| Error | Cause | Resolution |
|---|---|---|
LOGIN failed | Wrong auth code or IMAP not enabled | Re-generate authorization code at 126 settings |
ID command rejected | Missing ID command after login | Skill sends ID automatically — report if this occurs |
FETCH timeout | Rate limit hit (~4GB) | Save progress, wait 1-2 hours, resume |
BAD command | Folder name encoding wrong | Skill uses correct Modified UTF-7 |
| Sequence number mismatch | Used sequence instead of UID | Skill always uses UID operations |
All operations save progress to JSON files:
_download_progress.json — Full backup progress_progress.json — Large email strip progresscleanup_progress.md — Human-readable summaryThis means every operation is resumable. If your connection drops, rate limit hits, or you close your laptop — just run the command again and it picks up where it left off.
/126mail setup — Connect and verify/126mail status — See current mailbox state/126mail backup — Full local backup (run multiple times if rate-limited)/126mail classify — Index and classify all emails/126mail cleanup — Review and bulk-delete ads/subscriptions/126mail strip — Reclaim space from large attachments/126mail status — Verify resultsimaplib and email (standard library only, no pip dependencies)