/email/. Sending is handled via SMTP.
Config
Config Reference
| Field | Type | Default | Description |
|---|---|---|---|
imap_host | str | IMAP server hostname | |
imap_port | int | 993 | IMAP port |
smtp_host | str | SMTP server hostname | |
smtp_port | int | 587 | SMTP port |
username | str | Email address / login | |
password | str | Password or app password | |
use_ssl | bool | True | Use SSL for IMAP |
Common Resource Settings
| Resource | IMAP Host | SMTP Host | Notes |
|---|---|---|---|
| Outlook/365 | outlook.office365.com | smtp.office365.com | App password or OAuth2 |
| Yahoo | imap.mail.yahoo.com | smtp.mail.yahoo.com | App password required |
| Fastmail | imap.fastmail.com | smtp.fastmail.com | App password |
| iCloud | imap.mail.me.com | smtp.mail.me.com | App password |
| ProtonMail | 127.0.0.1 (Bridge) | 127.0.0.1 (Bridge) | Requires ProtonMail Bridge |
| Self-hosted | Your server hostname | Your server hostname | Whatever you configured |
Filesystem Layout
INBOX, Sent, Drafts).
Date Directories
Inside each folder, messages are grouped into date subdirectories formatted asYYYY-MM-DD. The date is derived from the message’s
Date header.
Message Files
Each message is stored as a.email.json file. The filename shape is:
Attachments
Messages that have attachments get a companion subdirectory with the same base name (without.email.json):
Cache
The Email resource usesIndexCacheStore (same as Gmail, Slack,
Discord, and other resources). Index entries store folder names,
message UIDs, and message metadata.
Example
Finding UIDs
Resource-specific commands require message UIDs. These can be extracted from the filesystem:Shell Commands
Standard commands available on the mounted email tree:| Command | Notes |
|---|---|
ls | List folders, dates, messages, attachments |
cat | Read message JSON or attachment content |
head / tail | First/last N lines |
grep / rg | Pattern search (file or directory level) |
jq | Query message JSON fields |
wc | Line/word/byte counts |
stat | File metadata (name, size, type) |
find | Recursive search with -name, -maxdepth |
tree | Directory tree view |
basename | Extract filename from path |
dirname | Extract directory from path |
realpath | Resolve path to absolute form |
nl | Number lines of output |
email-send
Send a new email.
| Option | Required | Description |
|---|---|---|
--to | yes | Recipient email address |
--subject | yes | Email subject line |
--body | yes | Email body text |
email-reply
Reply to a message.
| Option | Required | Description |
|---|---|---|
--uid | yes | Message UID |
--folder | no | IMAP folder (default: INBOX) |
--body | yes | Reply body text |
email-reply-all
Reply-all to a message.
| Option | Required | Description |
|---|---|---|
--uid | yes | Message UID |
--folder | no | IMAP folder (default: INBOX) |
--body | yes | Reply body text |
email-forward
Forward a message to another recipient.
| Option | Required | Description |
|---|---|---|
--uid | yes | Message UID |
--folder | no | IMAP folder (default: INBOX) |
--to | yes | Recipient email address |
email-triage
Search and triage emails.
| Option | Required | Description |
|---|---|---|
--folder | no | IMAP folder (default: INBOX) |
--max | no | Max results (default: 20) |
--unseen | no | Only show unread messages |
email-read
Read a message by its UID.
| Option | Required | Description |
|---|---|---|
--uid | yes | Message UID |
--folder | no | IMAP folder (default: INBOX) |