/install ews-email
EWS Email CLI
A CLI for enterprise Exchange (EWS) email. Use when the user asks about email, inbox, messages, or mail.
Setup
1. 环境变量
在 ~/.openclaw/config.yaml 中配置:
env:
EWS_SERVER: "your-exchange-server.com"
EWS_EMAIL: "[email protected]"
2. 存储密码
macOS(自动使用 Keychain,无需额外配置)
pip3 install keyring exchangelib
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py setup
Linux 云服务器(无桌面环境)
脚本会自动检测 Linux 无桌面环境,切换到 EncryptedKeyring 后端(AES 加密文件存储)。
# 安装依赖
pip3 install keyring exchangelib keyrings.alt
# 设置 master password 环境变量(用于加解密 EWS 密码)
# 在 ~/.openclaw/config.yaml 中添加:
# env:
# KEYRING_CRYPTFILE_PASSWORD: "你自己定义的一个强密码"
#
# 或在 systemd service / 启动脚本中 export:
export KEYRING_CRYPTFILE_PASSWORD="你自己定义的一个强密码"
# 存储 EWS 密码(会用 AES 加密写入本地文件)
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py setup
# 验证
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py folder-list
重启后只要 KEYRING_CRYPTFILE_PASSWORD 环境变量还在,密码就能正常解密读取,无需重新输入。
3. 验证安装
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py folder-list
SECURITY RULES
- NEVER attempt to read, display, or output the EWS password.
- NEVER run commands that could expose keyring contents.
- NEVER include passwords in any output, log, or message.
- The password is managed exclusively through the
setupcommand.
IMPORTANT: Reading Email Content
To read the FULL content/body of an email, you MUST follow these two steps:
- First run
envelope-listto get the message list (this gives you numeric IDs) - Then run
message-read \x3CID>to get the FULL email body/content
envelope-list only shows subject lines and metadata. It does NOT contain the email body.
You MUST run message-read to get the actual email content. NEVER guess or summarize based on subject alone.
NEVER say you cannot read email content — you CAN, by running message-read.
Script Location
~/.openclaw/skills/ews-email/scripts/ews-mail.py
Commands
List Emails (step 1 — metadata only)
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py envelope-list
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py envelope-list --page 2 --page-size 20
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py envelope-list --folder "Sent"
Read Email Body (step 2 — REQUIRED for content)
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py message-read \x3CID>
Search Emails
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py envelope-list from [email protected]
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py envelope-list subject keyword
Send / Reply / Forward
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py message-send --to "email" --subject "subject" --body "body"
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py message-send --to "[email protected]" --cc "[email protected]" --subject "Hi" --body "msg"
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py message-reply \x3CID> --body "reply text"
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py message-reply \x3CID> --body "reply text" --all
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py message-forward \x3CID> --to "email" --body "FYI"
Other Commands
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py folder-list
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py message-move \x3CID> "Archive"
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py message-delete \x3CID>
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py attachment-download \x3CID> --dir ~/Downloads
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py flag-add \x3CID> --flag seen
python3 ~/.openclaw/skills/ews-email/scripts/ews-mail.py flag-remove \x3CID> --flag seen
Tips
- Message IDs are numeric and come from the most recent
envelope-listoutput. - Always run
envelope-listfirst beforemessage-read,message-reply, etc. - Long email bodies are truncated at 8000 chars.
- Use
--pageand--page-sizeto navigate large inboxes.
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install ews-email - After installation, invoke the skill by name or use
/ews-email - Provide required inputs per the skill's parameter spec and get structured output
What is Ews Email?
CLI to manage enterprise Outlook emails via Exchange Web Services (EWS). Use ews-mail.py to list, read, reply, forward, search, send, move, delete emails and... It is an AI Agent Skill for Claude Code / OpenClaw, with 488 downloads so far.
How do I install Ews Email?
Run "/install ews-email" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Ews Email free?
Yes, Ews Email is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Ews Email support?
Ews Email is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Ews Email?
It is built and maintained by guyun94 (@guyun94); the current version is v1.2.0.