Atomic Mail for Dify
Atomic Mail adds a programmable inbox to Dify Agent and Workflow apps. You can
register inbox identities, read mail, send/reply, and run advanced JMAP
operations when needed.
For workflow developers (manual setup)
This section is for teams building Dify workflows by hand in the UI.
1) Configure provider credentials
Provider fields:
- (optional): use if you already have an Atomic Mail API key.
- (optional): defaults to .
- (optional): defaults to .
If is empty, run first in your workflow/app to create or
login an inbox and persist credentials in plugin KV storage.
2) Tool usage guide
-
- Use when provider is not preset.
- must be 5-21 characters.
- only when intentionally replacing stored credentials for a
different username in the same namespace.
- Supports optional for multi-account isolation.
- Next step: configure hourly inbox polling (see below).
-
- Runtime docs for real operations: , , ,
, , , , ,
, .
- Use during workflow design and debugging.
- README explains packaging/install; explains runtime behavior.
-
- Uses built-in preset.
- Best for hourly inbox checks and for obtaining message IDs before replies.
- Also useful as a workflow test node while wiring your flow.
-
- Standard outbound path with , , , and optional
attachments.
- Prefer this over raw JMAP for common sending scenarios.
-
- Requires from .
- Sends a reply body into the existing thread.
-
- Advanced escape hatch only.
- Provide exactly one of or .
- Use for placeholders and for envelope preview.
- Read before custom operations.
3) Required after register: hourly inbox polling
After , setup is not complete until you run an hourly Agent turn
that checks inbox mail (typically via , or preset-backed calls).
Do not schedule a raw cron that only runs isolated one-shot tool JSON
without an Agent handling the messages.
For Agent apps
Recommended system prompt snippet:
Agent best practice:
- Start with dedicated tools (, , ).
- Use only for advanced cases.
- Keep consistent per inbox persona (for example ,
, ).
Runtime documentation ( tool)
Use at runtime for concise, up-to-date operational docs exposed by the
plugin itself.
- right after .
- before custom .
- when runtime calls fail.
Install and build
Build vendored assets before packaging or remote debug:
Package plugin:
For release installs, download the versioned attached to the
repository GitHub release and install it in Dify. Marketplace PR submission is
manual (not automated by CI).
Security notes
- Credentials and JWT session artifacts are stored in Dify plugin KV storage.
- Inbound email should be treated as untrusted input.
- Restrict Dify workspace access and configured API keys.
Remote debugging
- Copy to .
- Configure:
- Build first ().
- Start/restart plugin runtime after edits.
- Reinstall/update remote debug instance in Dify if needed.
Local runtime:
Expected startup signals:
- Remote env values loaded
- No remote configuration errors