skills$openclaw/portable-email-manager
jorgermp6.6kā˜…

by jorgermp

portable-email-manager – OpenClaw Skill

portable-email-manager is an OpenClaw Skills integration for coding workflows. Lightweight email manager with IMAP/SMTP support, advanced search, folder management, and attachment detection. Works with Zoho, Gmail, Outlook, and any IMAP/SMTP provider.

6.6k stars3.3k forksSecurity L1
Updated Feb 7, 2026Created Feb 7, 2026coding

Skill Snapshot

nameportable-email-manager
descriptionLightweight email manager with IMAP/SMTP support, advanced search, folder management, and attachment detection. Works with Zoho, Gmail, Outlook, and any IMAP/SMTP provider. OpenClaw Skills integration.
ownerjorgermp
repositoryjorgermp/email-manager-lite
languageMarkdown
licenseMIT
topics
securityL1
installopenclaw add @jorgermp/email-manager-lite
last updatedFeb 7, 2026

Maintainer

jorgermp

jorgermp

Maintains portable-email-manager in the OpenClaw Skills directory.

View GitHub profile
File Explorer
7 files
.
scripts
email.js
11.1 KB
_meta.json
468 B
CHANGELOG.md
2.1 KB
package.json
495 B
README.md
1.7 KB
SKILL.md
8.2 KB
SKILL.md

name: portable-email-manager version: 0.2.0 description: Lightweight email manager with IMAP/SMTP support, advanced search, folder management, and attachment detection. Works with Zoho, Gmail, Outlook, and any IMAP/SMTP provider.

Email Manager Lite v0.2

A fully self-contained email management skill for OpenClaw. Uses standard IMAP and SMTP protocols with zero external dependencies.

✨ What's New in v0.2

šŸ” Advanced Search & Filters

  • Search by sender (--from)
  • Search by subject keywords (--subject)
  • Filter by date range (--since, --before)
  • Filter by read/unread status (--seen, --unseen)
  • Search in email body (--body, warning: can be slow)

šŸ“ Folder Management

  • List all IMAP folders with folders command
  • Move emails between folders with move command
  • Automatic validation of folder existence

šŸ“Ž Attachment Information

  • Automatic detection of attachments
  • Display attachment details:
    • Filename
    • MIME type
    • File size (formatted KB/MB)
  • Shown in both read and search results

šŸ”§ Installation

cd skills/portable-email-manager
npm install

Dependencies are bundled in package.json:

  • nodemailer - SMTP email sending
  • imap-simple - IMAP operations
  • mailparser - Email parsing and attachment detection

šŸ” Credentials

Set 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.

Provider Setup

Zoho Mail (default):

Gmail:

Outlook/Hotmail:

  • Edit to use smtp.office365.com / outlook.office365.com
  • Port 587 for SMTP (TLS)

šŸ“– Usage

Send Email

./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 read

# Read last 20 emails
./scripts/email.js read 20

Output includes:

  • UID (unique ID for moving)
  • From/To addresses
  • Subject and date
  • Attachment count and details
  • Email body preview (first 500 chars)

Advanced Search

./scripts/email.js search [options]

Search Options:

OptionDescriptionExample
--from <email>Filter by sender--from "boss@company.com"
--subject <text>Filter by subject keywords--subject "invoice"
--since <date>Emails after date--since "Jan 1, 2026"
--before <date>Emails before date--before "Feb 1, 2026"
--unseenOnly unread emails--unseen
--seenOnly read emails--seen
--body <text>Search in body (slow!)--body "meeting"
--limit <n>Max results--limit 10

Examples:

# Find unread emails from specific sender
./scripts/email.js search --from "client@example.com" --unseen

# Search 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

List Folders

./scripts/email.js folders

Shows hierarchical tree of all IMAP folders with attributes.

Example output:

šŸ“ INBOX
šŸ“ Sent
šŸ“ Archive
šŸ“ Drafts
šŸ“ Spam
šŸ“ Trash

Move Email to Folder

./scripts/email.js move <uid> <folder-name>

Important:

  • Get the uid from read or search output
  • Folder name is case-sensitive
  • Script validates folder exists before moving

Examples:

# First, find the email and note its UID
./scripts/email.js search --from "newsletter@example.com"
# Output shows: UID: 12345

# Move to Archive folder
./scripts/email.js move 12345 "Archive"

# Move to custom folder
./scripts/email.js move 67890 "Projects/Work"

Error handling:

  • If folder doesn't exist, shows list of available folders
  • Validates UID exists before attempting move

Help

./scripts/email.js help

Shows complete usage guide with all commands and examples.

šŸŽÆ Use Cases

Daily Email Triage

# Check unread emails
./scripts/email.js search --unseen --limit 10

# Move newsletters to folder
./scripts/email.js search --from "newsletter@site.com" --limit 1
./scripts/email.js move <uid> "Newsletters"

Find Specific Email

# 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"

Archive Old Emails

# Find old read emails
./scripts/email.js search --before "Dec 1, 2025" --seen --limit 50

# Move each to Archive (use UID from output)
./scripts/email.js move <uid> "Archive"

Check for Attachments

# Read recent emails and see attachment info
./scripts/email.js read 10

# Search output automatically shows:
# - Number of attachments
# - Filename, type, and size for each

šŸ”’ Security

  • Credentials never logged or stored in files
  • TLS/SSL encryption for all connections
  • App Passwords recommended over account passwords
  • No data leaves your machine except IMAP/SMTP connections

āš™ļø Configuration

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
  }
};

šŸš€ Performance Notes

  • Body search (--body) can be slow on large mailboxes - use sparingly
  • Subject/From search is fast - uses IMAP server-side filtering
  • Date filters are efficient
  • Limit results with --limit for faster responses

šŸ› Troubleshooting

"Authentication failed"

  • Verify EMAIL_USER and EMAIL_PASS are set correctly
  • Use App Password, not account password
  • Check provider settings (2FA, less secure apps, etc.)

"Folder not found"

  • Use folders command to see exact folder names
  • Folder names are case-sensitive
  • Some providers use different names (e.g., "Sent Items" vs "Sent")

"Connection timeout"

  • Check firewall/network settings
  • Verify IMAP/SMTP ports are accessible
  • Try increasing authTimeout in config

"No emails found"

  • Check search criteria
  • Verify emails exist in INBOX (not other folders)
  • Try broader search (remove some filters)

šŸ“ Version History

v0.2.0 (Current)

  • ✨ Advanced search with multiple filters
  • šŸ“ Folder management (list, move)
  • šŸ“Ž Attachment detection and info
  • šŸŽØ Improved output formatting
  • šŸ“š Comprehensive documentation

v0.1.0

  • Basic send/read functionality
  • Zoho Mail support
  • IMAP/SMTP foundation

šŸ¤ Compatibility

Tested with:

  • āœ… Zoho Mail (EU & US)
  • āœ… Gmail
  • āœ… Outlook/Hotmail
  • āœ… iCloud Mail
  • āœ… Custom IMAP/SMTP servers

šŸ’” Tips

  1. Use UIDs for automation: Save UIDs from search results to move emails programmatically
  2. Combine filters: Multiple filters create AND conditions for precise searches
  3. Folder organization: List folders first to plan your organization strategy
  4. Date format: Use natural language dates like "Jan 1, 2026" or "December 25, 2025"
  5. Attachment filtering: Look for "Attachments: X" in search output to find emails with files

šŸ“„ License

ISC - Use freely in your OpenClaw setup.

README.md

Email Manager Lite v0.2.0

Lightweight, self-contained email manager for OpenClaw with advanced search, folder management, and attachment detection.

Quick Start

# 1. Install dependencies
cd skills/portable-email-manager
npm install

# 2. Set credentials
export EMAIL_USER="your@email.com"
export EMAIL_PASS="your-app-password"

# 3. Test it
./scripts/email.js help
./scripts/email.js read 5

New in v0.2

✨ Advanced Search

  • Filter by sender, subject, date range, read status
  • Search in email body
  • Combine multiple filters

šŸ“ Folder Management

  • List all IMAP folders
  • Move emails between folders
  • Automatic folder validation

šŸ“Ž Attachment Info

  • Detect attachments automatically
  • Show filename, type, and size
  • Displayed in all email listings

Quick Examples

# Search unread emails from boss
./scripts/email.js search --from "boss@company.com" --unseen

# List all folders
./scripts/email.js folders

# Move email to Archive (get UID from read/search output)
./scripts/email.js move 12345 "Archive"

# Search by date range
./scripts/email.js search --since "Jan 1, 2026" --limit 10

Documentation

See SKILL.md for complete documentation with all features, examples, and troubleshooting.

Compatibility

  • āœ… Zoho Mail (default config)
  • āœ… Gmail
  • āœ… Outlook/Hotmail
  • āœ… iCloud Mail
  • āœ… Custom IMAP/SMTP servers

Configuration

Default: Zoho Mail EU (smtp.zoho.eu / imap.zoho.eu)

To change provider, edit scripts/email.js and update smtpConfig and imapConfig.

Support

  • šŸ“š Full docs: SKILL.md
  • šŸ› Issues: Check troubleshooting section in SKILL.md
  • šŸ’” Tips: Run ./scripts/email.js help

Permissions & Security

Security level L1: Low-risk skills with minimal permissions. Review inputs and outputs before running in production.

Requirements

  • OpenClaw CLI installed and configured.
  • Language: Markdown
  • License: MIT
  • Topics:

Configuration

Default configuration is optimized for **Zoho Mail EU**. To use another provider, edit `scripts/email.js`: ```javascript // 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 } }; ```

FAQ

How do I install portable-email-manager?

Run openclaw add @jorgermp/email-manager-lite in your terminal. This installs portable-email-manager into your OpenClaw Skills catalog.

Does this skill run locally or in the cloud?

OpenClaw Skills execute locally by default. Review the SKILL.md and permissions before running any skill.

Where can I verify the source code?

The source repository is available at https://github.com/openclaw/skills/tree/main/skills/jorgermp/email-manager-lite. Review commits and README documentation before installing.