Skip to main content

Email

Three provider-agnostic email nodes that work with any IMAP/SMTP mail account: send messages, read and manage your mailbox, and trigger workflows when new mail arrives. Under the hood they drive the Himalaya CLI, so anything Himalaya can talk to, these nodes can too. If your mail lives in Gmail and you want richer, API-native operations (labels, Gmail search syntax, OAuth sign-in), use the dedicated Google Workspace nodes instead. The nodes on this page are the right choice for Outlook, Yahoo, iCloud, ProtonMail, Fastmail, self-hosted servers — or Gmail over plain IMAP.

Set up an email account

Click the key icon to open API Credentials and select Email (IMAP/SMTP) under the Email category. The panel provides:
  • A provider dropdown with built-in presets: Gmail, Outlook, Yahoo, iCloud, ProtonMail, Fastmail, and custom. Presets fill in the IMAP/SMTP host, port, and encryption for you.
  • Email address and password inputs.
  • A custom IMAP/SMTP block (host + port for each) that appears only when the provider is custom — for self-hosted or unlisted servers.
  • Save writes the credentials; Remove clears them.
Most providers expect an app password here rather than your regular login. An app password is a single-purpose password your mail provider generates specifically for third-party apps, so you never hand out your real account password.
The himalaya CLI must be installed and on your PATH — install via brew install himalaya, cargo install himalaya, or the pre-built binaries on its GitHub releases page. If it is missing, the nodes return an error with install instructions.
You can also override any credential field per node: a node parameter always wins over the provider preset, which wins over the stored credential.

Email Send

Send an email over SMTP. Also usable as an AI tool (email_send) — wire it to an AI Agent’s tools handle and the agent fills the same parameters.

Parameters

select
default:"gmail"
gmail, outlook, yahoo, icloud, protonmail, fastmail, or custom — picks the connection preset
string
required
Recipient(s), comma-separated
string
required
Email subject line
string
Email body — plain text or HTML depending on body_type
string
CC recipients
string
BCC recipients
select
default:"text"
text or html. HTML sends a multipart/alternative MIME message.

Output

The result includes from (the resolved sender address) merged with whatever the underlying send command returns — often an empty object on success, or raw_output when the CLI output is not JSON.

Example: Send a status update

Attachments are not supported — the node composes a single text or HTML part.

Email Read

Read and manage an IMAP mailbox: list envelopes, search, fetch a full message, list folders, move, delete, and flag. One node, seven operations selected by the Operation parameter. Also usable as an AI tool (email_read).

Parameters

select
default:"gmail"
Connection preset (same choices as Email Send)
select
default:"list"
list, search, read, folders, move, delete, or flag
string
default:"INBOX"
IMAP folder to operate on
Operation-specific parameters:

Output

The result always echoes operation and folder. When the CLI returns a JSON object its keys are merged in; a list is wrapped under data; non-JSON output lands in raw_output.

Example: Find invoices

The delete operation is permanent and does not ask for confirmation — treat it carefully, especially when this node is exposed to an AI agent as a tool.

Email Receive

Polling trigger that fires when a new email lands in a watched IMAP folder. The first poll establishes a baseline so existing mail is not replayed; subsequent polls diff message IDs to detect new arrivals.

Parameters

select
default:"gmail"
Connection preset (same choices as Email Send)
string
default:"INBOX"
IMAP folder to watch
number
default:"60"
Seconds between polls (clamped to 30-3600)
string
Reserved — not currently applied during polling
boolean
default:"false"
Add the Seen flag to the new message after fetching it

Output

message_id and folder are always present; the remaining fields are whatever the message read returns (from, to, subject, date, body, …).

Example: Watch the support inbox

Only the first new message per poll cycle is emitted — others arriving in the same window are absorbed into the baseline. The baseline is in-memory, so mail arriving while the server is offline will not fire the trigger after a restart.

Example: Auto-reply triage

Answer incoming support mail automatically:
  1. Email Receive
    • Folder: INBOX
    • Poll Interval: 60
    • Mark As Read: true
  2. AI Agent
    • Prompt: “Read the incoming email and draft a short, polite reply. If it is a billing question, say the billing team will follow up within one business day.”
  3. Email Send
    • To: the sender of the incoming message
    • Subject: Re: plus the original subject
    • Body: the agent’s draft
Deploy the workflow so the trigger keeps polling continuously instead of running once.

Tips

Provider presets cover the connection details — for the seven built-in providers you only ever enter your address and an app password.
ProtonMail requires the ProtonMail Bridge running locally; the preset already points at the Bridge’s local IMAP/SMTP ports.
Wire Email Send and Email Read to the same AI Agent to build a full mailbox assistant: the agent can search, read, and reply within a single conversation.

Google Workspace

API-native Gmail nodes with OAuth sign-in

AI Agents

Use the email nodes as AI tools

Schedulers & Triggers

Combine email with scheduled workflows

Messaging & Social

Telegram, Twitter/X, and social nodes