通过 IMAP/SMTP 协议操作腾讯企业邮箱(exmail.qq.com),支持收发邮件、搜索、附件等完整功能。
在 OpenClaw 配置中设置以下环境变量:
json
{
"skills": {
"entries": {
"tencent-exmail": {
"enabled": true,
"env": {
"EXMAIL_ADDRESS": "your_name@your_company.com",
"EXMAIL_PASSWORD": "your_password_or_auth_code"
}
}
}
}
}
注意:如果账号已绑定微信,请使用邮箱控制台生成的「客户端专用密码」(授权码),而非登录密码。
协议服务器端口加密IMAP(收信)imap.exmail.qq.com``993SSLSMTP(发信)smtp.exmail.qq.com``465SSLPOP3(收信)pop.exmail.qq.com``995SSL
用户指令示例:
执行方式:调用 scripts/send_email.py
bash
python3 scripts/send_email.py \
--to "recipient@example.com" \
--subject "邮件主题" \
--body "邮件正文内容" \
[--cc "cc@example.com"] \
[--attachment "/path/to/file.pdf"]
支持参数:
--to 收件人(多个用逗号分隔)--cc 抄送(可选)--bcc 密送(可选)--subject 主题--body 正文(支持纯文本和 HTML)--html 发送 HTML 格式(flag)--attachment 附件路径(可多次使用添加多个附件)用户指令示例:
执行方式:调用 scripts/read_email.py
bash
python3 scripts/read_email.py \
--action list \
--folder INBOX \
--limit 20 \
[--unread-only]
用户指令示例:
bash
python3 scripts/read_email.py \
--action read \
--uid <邮件UID>
用户指令示例:
bash
python3 scripts/read_email.py \
--action search \
--query "FROM boss@company.com" \
[--folder INBOX] \
[--limit 20]
搜索语法支持(IMAP 标准):
FROM "sender@example.com" — 按发件人TO "me@company.com" — 按收件人SUBJECT "关键词" — 按主题BODY "关键词" — 按正文SINCE 01-Jan-2025 — 按日期UNSEEN — 未读邮件SEEN — 已读邮件FROM "boss" SINCE 01-Mar-2025 UNSEEN用户指令示例:
bash
python3 scripts/read_email.py \
--action download-attachment \
--uid <邮件UID> \
--save-dir "/path/to/save/dir"
bash
python3 scripts/read_email.py \
--action list-folders
常见文件夹名称: INBOX、 Sent Messages、 Drafts、 Deleted Messages、 Junk
bash
# 标记已读
python3 scripts/read_email.py --action mark-read --uid <UID>
# 标记未读
python3 scripts/read_email.py --action mark-unread --uid <UID>
# 移动到文件夹
python3 scripts/read_email.py --action move --uid <UID> --target-folder "Archived"
用户指令示例:
首次使用需安装依赖:
bash
pip3 install imapclient
执行方式:调用 scripts/watch_email.py
bash
# 监听收件箱,终端实时打印通知
python3 scripts/watch_email.py
# 监听并将新邮件信息写入 JSON 文件(供 OpenClaw 读取)
python3 scripts/watch_email.py \
--hook-file ~/.openclaw/workspace/new_emails.json
# 后台运行(静默模式)
python3 scripts/watch_email.py \
--hook-file ~/.openclaw/workspace/new_emails.json \
--quiet &
工作原理:
JSON 输出格式( --hook-file 模式):
json
[
{
"timestamp": "2025-03-17T10:23:45",
"folder": "INBOX",
"uid": 1234,
"subject": "项目进展汇报",
"from": "张三 <zhang@company.com>",
"date": "Mon, 17 Mar 2025 10:23:40 +0800",
"size_kb": 12.5,
"is_unread": true
}
]
~/Downloads/错误信息可能原因解决方案535 Authentication failed密码错误或未使用授权码检查密码,若绑定微信需使用客户端专用密码Connection refused网络问题或端口被封检查网络,确认 465/993 端口开放Mailbox not found文件夹名称错误先用 list-folders 查看正确名称Message not foundUID 失效重新查询最新 UID
hwimap.exmail.qq.com / hwsmtp.exmail.qq.com详细实现和故障排查请参阅:
references/server-config.md — 服务器参数完整说明references/troubleshooting.md — 常见问题解答