eMail manager lite
Lightweight email manager with IMAP/SMTP support, advanced search, folder management, and attachment detection. Works with Zoho, Gmail, Outlook, and any IMAP/SMTP provider.
Lightweight email manager with IMAP/SMTP support, advanced search, folder management, and attachment detection. Works with Zoho, Gmail, Outlook, and any IMAP/SMTP provider.
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
A fully self-contained email management skill for OpenClaw. Uses standard IMAP and SMTP protocols with zero external dependencies.
--from)--subject)--since, --before)--seen, --unseen)--body, warning: can be slow)folders commandmove commandread and search resultscd skills/portable-email-manager npm install
Dependencies are bundled in
package.json:
nodemailer - SMTP email sendingimap-simple - IMAP operationsmailparser - Email parsing and attachment detectionSet these environment variables:
export EMAIL_USER="your.email@domain.com" export EMAIL_PASS="your-app-password"
Recommended: Use App Passwords for Gmail, Outlook, Zoho instead of main password.
Zoho Mail (default):
smtp.zoho.eu and imap.zoho.euGmail:
scripts/email.js and change:
host: 'smtp.gmail.com' // SMTP host: 'imap.gmail.com' // IMAP
Outlook/Hotmail:
smtp.office365.com / outlook.office365.com./scripts/email.js send "recipient@example.com" "Subject" "Email body text"
Example:
./scripts/email.js send "boss@company.com" "Weekly Report" "Attached is this week's summary."
./scripts/email.js read [limit]
Examples:
# Read last 5 emails (default) ./scripts/email.js readRead last 20 emails
./scripts/email.js read 20
Output includes:
./scripts/email.js search [options]
Search Options:
| Option | Description | Example |
|---|---|---|
| Filter by sender | |
| Filter by subject keywords | |
| Emails after date | |
| Emails before date | |
| Only unread emails | |
| Only read emails | |
| Search in body (slow!) | |
| Max results | |
Examples:
# Find unread emails from specific sender ./scripts/email.js search --from "client@example.com" --unseenSearch by subject
./scripts/email.js search --subject "invoice" --limit 5
Date range search
./scripts/email.js search --since "Jan 15, 2026" --before "Feb 1, 2026"
Search in body (use sparingly - can be slow)
./scripts/email.js search --body "quarterly review"
Combine multiple filters
./scripts/email.js search --from "boss@company.com" --subject "urgent" --unseen --limit 3
./scripts/email.js folders
Shows hierarchical tree of all IMAP folders with attributes.
Example output:
📁 INBOX 📁 Sent 📁 Archive 📁 Drafts 📁 Spam 📁 Trash
./scripts/email.js move <uid> <folder-name>
Important:
uid from read or search outputExamples:
# First, find the email and note its UID ./scripts/email.js search --from "newsletter@example.com" # Output shows: UID: 12345Move to Archive folder
./scripts/email.js move 12345 "Archive"
Move to custom folder
./scripts/email.js move 67890 "Projects/Work"
Error handling:
./scripts/email.js help
Shows complete usage guide with all commands and examples.
# Check unread emails ./scripts/email.js search --unseen --limit 10Move newsletters to folder
./scripts/email.js search --from "newsletter@site.com" --limit 1 ./scripts/email.js move <uid> "Newsletters"
# Search by sender and subject ./scripts/email.js search --from "client@example.com" --subject "proposal"Search by date
./scripts/email.js search --since "Jan 20, 2026" --subject "meeting notes"
# Find old read emails ./scripts/email.js search --before "Dec 1, 2025" --seen --limit 50Move each to Archive (use UID from output)
./scripts/email.js move <uid> "Archive"
# Read recent emails and see attachment info ./scripts/email.js read 10Search output automatically shows:
- Number of attachments
- Filename, type, and size for each
Default configuration is optimized for Zoho Mail EU.
To use another provider, edit
scripts/email.js:
// SMTP Configuration const smtpConfig = { host: 'smtp.your-provider.com', port: 465, // or 587 for TLS secure: true, // true for SSL (465), false for TLS (587) auth: { user: EMAIL_USER, pass: EMAIL_PASS } };// IMAP Configuration const imapConfig = { imap: { user: EMAIL_USER, password: EMAIL_PASS, host: 'imap.your-provider.com', port: 993, tls: true, authTimeout: 20000 } };
--body) can be slow on large mailboxes - use sparingly--limit for faster responses"Authentication failed"
"Folder not found"
folders command to see exact folder names"Connection timeout"
authTimeout in config"No emails found"
Tested with:
ISC - Use freely in your OpenClaw setup.
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.