imap-smtp-email-fixed@2.0.0
VERIFIED· install onlyPublisher claims: "Read and send email via IMAP/SMTP. Check for new/unread messages, fetch content, search mailboxes, mark as read/unread, and send emails with attachments. Sup..." Observed in sandbox: no network, touches nothing outside the project, writes no memory.
Coverage
Install scripts ran; no agent task scenario for this bundle.- Tested
- install scripts, with decoy credentials in place · second launch with the clock 45 days ahead · every file read, file written and host contacted by what ran
- Not tested
- use of the skill by an agent
Is [email protected] safe to install?
KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; install scripts ran; no agent task scenario for this bundle) on 2026-11-15 and scored it 84/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 2 scenarios · 0 deviationsStatic findings
const LEGACY_ENV_PATH = path.join(os.homedir(), '.config', 'imap-smtp-email', '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.throw new Error('ALLOWED_WRITE_DIRS not set in .env. Attachment download is disabled.');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- Credentials are stored in `~/.openclaw/.env` with `600` permissions (owner read/write only). Connection config is in `config.env` in the skill directoryFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Or manually add prefixed config to `config.env` and secrets to `~/.openclaw/.env`:Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.console.error(`Error: Account "${prefix.toLowerCase()}" not found. Check config.env and ~/.openclaw/.env`);Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.# --- Append secrets to OC .env (skip if already present) ---Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.throw new Error('Missing SMTP configuration. Check credentials in ~/.openclaw/.env and settings in config.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.echo "⚠️ OC .env not found at $OC_ENV — add credentials manually:"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Split config: secrets in OC .env, connection settings in skill config.envFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- The prefix in `.env` is always uppercase (e.g., `WORK_IMAP_HOST`)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Legacy fallback: `~/.config/imap-smtp-email/.env` (single combined file).Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.throw new Error('Missing IMAP user or password. Check credentials in ~/.openclaw/.env and settings in config.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.chmod 600 "$OC_ENV"Fix: Request the narrowest permission that works; replace wildcards with the exact paths or hosts.# Build secret vars (passwords only — OC .env)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.const OC_ENV_PATH = path.join(os.homedir(), '.openclaw', '.env');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.// Load all env sources — OC .env (secrets), skill config.env (settings), legacy fallbackFix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.OC_ENV="$HOME/.openclaw/.env"Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.- **`~/.openclaw/.env`** — credentials (user, password, from address)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.throw new Error('ALLOWED_READ_DIRS not set in .env. File read operations are disabled.');Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.