OpenClaw email plugin for mailbox search, message reading, and explicit IMAP/SMTP sends
Community code plugin. Review compatibility and verification before install.
email · runtime id email
Install
openclaw plugins install clawhub:emailLatest Release
Version 0.1.0
Compatibility
{
"builtWithOpenClawVersion": "2026.3.23-2",
"pluginApiRange": ">=2026.3.23"
}Capabilities
{
"bundledSkills": [],
"capabilityTags": [
"executes-code"
],
"channels": [],
"commandNames": [],
"configSchema": true,
"configUiHints": false,
"executesCode": true,
"hooks": [],
"httpRouteCount": 0,
"materializesDependencies": false,
"providers": [],
"runtimeId": "email",
"serviceNames": [],
"setupEntry": false,
"toolNames": []
}Security Scan
OpenClaw
Benign
high confidencePurpose & Capability
The name/description (Email / IMAP+SMTP mailbox operations) match the code and SKILL.md. The implementation imports imapflow, mailparser, and nodemailer and exposes mailbox listing, search, read, flag/move, send, and reply tools. It does not request unrelated cloud credentials, system tokens, or extra binaries; credentials are provided via the plugin config, which is appropriate for email access.
Instruction Scope
SKILL.md confines instructions to mailbox inspection, search, reading, marking/moving, and sending/replying. It explicitly requires explicit confirmation for sends by default. One capability to note: the plugin accepts attachment file paths (e.g., /tmp/q2.xlsx) and the runtime will read such files to include them in outbound email — this is expected for an email-sending plugin but does create a legitimate exfiltration vector if misused.
Install Mechanism
No install script is declared; the package lists standard npm dependencies (imapflow, mailparser, nodemailer). There are no external downloads or URL-based installers in the manifest. Using npm packages is expected for this functionality; review of dependencies is recommended but their presence is coherent with the plugin's purpose.
Credentials
The plugin declares no required environment variables and instead takes IMAP/SMTP host, username, and password via the plugin config (openclaw.plugin.json and SKILL.md). The amount and type of credentials requested are proportional to an IMAP/SMTP email client. The code accepts secret-like objects (e.g., { secret: '...' }) and string secrets — again consistent with plugin config patterns.
Persistence & Privilege
always is false and the skill is user-invocable (expected). Autonomous invocation is allowed by default, but the plugin enforces explicit send confirmation by default (requireExplicitSendConfirmation=true). If an operator disables that confirmation in plugin config, an agent with autonomous invocation could send email without per-send confirmation — consider keeping confirmation enabled and using least-privilege mailbox credentials (app passwords) to limit risk.
Assessment
This plugin appears to do exactly what it says: act as an IMAP/SMTP mailbox client. Before installing, (1) plan how you will provide IMAP/SMTP credentials — use an app-specific password or least-privilege account, not your primary account password; (2) keep requireExplicitSendConfirmation=true so the agent cannot send emails without you explicitly approving each send; (3) be aware that attachments are passed as filesystem paths and the plugin will read those files to include them in outbound emails (so do not allow the plugin to attach sensitive local files unless intentional); and (4) if you rely on third-party npm packages in environments handling highly sensitive mail, review their versions and supply-chain provenance.Verification
{
"hasProvenance": false,
"scanStatus": "clean",
"scope": "artifact-only",
"sourceCommit": "301ae1bdf8ffb15ec92be623cbcf74fde5a69fc8",
"sourceRepo": "clawic/plugins",
"sourceTag": "301ae1bdf8ffb15ec92be623cbcf74fde5a69fc8",
"summary": "Validated package structure and linked the release to source metadata.",
"tier": "source-linked"
}Tags
{
"latest": "0.1.0"
}Email Plugin
OpenClaw plugin for working with a real mailbox over IMAP and SMTP.
It covers the expected operational email surface: list mailboxes, search recent messages, read a full message, update read or starred state, move a message, send a new email, and reply to an existing thread.
Config
{
plugins: {
entries: {
email: {
enabled: true,
config: {
imap: {
host: "imap.gmail.com",
port: 993,
secure: true,
username: "me@example.com",
password: "YOUR_IMAP_APP_PASSWORD", // pragma: allowlist secret
},
smtp: {
host: "smtp.gmail.com",
port: 465,
secure: true,
username: "me@example.com",
password: "YOUR_SMTP_APP_PASSWORD", // pragma: allowlist secret
from: "me@example.com",
name: "Your Name",
},
defaultMailbox: "INBOX",
defaultSearchLimit: 10,
defaultSearchWindow: 100,
requireExplicitSendConfirmation: true,
},
},
},
},
}
If smtp.username, smtp.password, or smtp.from are omitted, the plugin falls back to the IMAP credentials where possible.
Tools
email_mailboxes_listemail_messages_searchemail_message_getemail_message_updateemail_message_moveemail_sendemail_reply
Usage
After enabling email, ask for things like:
- List my mailboxes and tell me which ones look like archive folders.
- Search INBOX for unread emails from billing@vendor.com about invoices from the last week.
- Open message 4821 in INBOX and summarize what it asks for.
- Mark message 4821 as read and starred.
- Move message 4821 from INBOX to Archive.
- Send an email to finance@example.com with subject "Q2 draft" and attach
/tmp/q2.xlsx. - Reply to message 4821 saying that I will review it today.
Notes
email_messages_searchscans the most recentdefaultSearchWindowmessages in the selected mailbox and returns up todefaultSearchLimitmatches unless overridden.email_sendandemail_replyrequireconfirm=trueby default so the agent cannot send a real email without an explicit confirmation step.- Most hosted providers require an app password or provider-specific IMAP/SMTP credentials. OAuth login flows are out of scope for this plugin.
