专为AI代理打造的API优先邮件平台,可创建和管理专属邮箱,实现邮件的编程发送与接收,并处理基于邮件的任务。
AgentMail.是一项面向实际任务的技能,主要用于AgentMail是一个API- First电子邮件平台,专门为AI代理设计. 与传统电子邮件提供者(Gmail, Outlook)不同,AgentMail提供程序收件箱,使用基数。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
AgentMail 是一个以 API 为先的电子邮件平台,专为 AI Agent 设计。与传统邮件服务(如 Gmail、Outlook)不同,AgentMail 提供可编程邮箱、按用量计费、高并发发送能力以及实时 Webhook 支持。
console.agentmail.topip install agentmail python-dotenvAGENTMAIL_API_KEY=your_key_herefrom agentmail import AgentMail
client = AgentMail(api_key=os.getenv("AGENTMAIL_API_KEY"))
# 使用自定义用户名创建邮箱
inbox = client.inboxes.create(
username="spike-assistant", # 将创建 spike-assistant@agentmail.to
client_id="unique-identifier" # 确保幂等性
)
print(f"已创建:{inbox.inbox_id}")
client.inboxes.messages.send(
inbox_id="spike-assistant@agentmail.to",
to="adam@example.com",
subject="任务已完成",
text="PDF 旋转已完成。请查看附件。",
html="PDF 旋转已完成。请查看附件。
",
attachments=[{
"filename": "rotated.pdf",
"content": base64.b64encode(file_data).decode()
}]
)
inboxes = client.inboxes.list(limit=10)
for inbox in inboxes.inboxes:
print(f"{inbox.inbox_id} - {inbox.display_name}")
配置 Webhook,以便在收到新邮件时立即响应:
# 注册 Webhook 终端
webhook = client.webhooks.create(
url="https://your-domain.com/webhook",
client_id="email-processor"
)
详见 WEBHOOKS.md,其中包含完整的 Webhook 配置指南,以及使用 ngrok 进行本地开发的方法。
如需使用品牌化邮箱地址(例如 spike@yourdomain.com),请升级至付费计划,并在控制台中配置自定义域名。
⚠️ 风险提示:入站邮件 Webhook 暴露了提示注入(prompt injection)攻击面。任何人皆可向你的 Agent 邮箱发送含恶意指令的邮件,例如:
解决方案:使用 Clawdbot Webhook 转换器实现发件人白名单机制。
~/.clawdbot/hooks/email-allowlist.ts:const ALLOWLIST = [
'adam@example.com', // 你的个人邮箱
'trusted-service@domain.com', // 其他可信服务邮箱
];
export default function(payload: any) {
const from = payload.message?.from?.[0]?.email;
// 若无发件人或不在白名单中,则拦截
if (!from || !ALLOWLIST.includes(from.toLowerCase())) {
console.log(`[email-filter] ❌ 已拦截来自 ${from || 'unknown'} 的邮件`);
return null; // 丢弃该 Webhook
}
console.log(`[email-filter] ✅ 已放行来自 ${from} 的邮件`);
// 透传至指定动作
return {
action: 'wake',
text: `📬 来自 ${from} 的邮件:nn${payload.message.subject}nn${payload.message.text}`,
deliver: true,
channel: 'slack', // 或 'telegram'、'discord' 等
to: 'channel:YOUR_CHANNEL_ID'
};
}
~/.clawdbot/clawdbot.json):{
"hooks": {
"transformsDir": "~/.clawdbot/hooks",
"mappings": [
{
"id": "agentmail",
"match": { "path": "/agentmail" },
"transform": { "module": "email-allowlist.ts" }
}
]
}
}
clawdbot gateway restart若希望在执行操作前人工审核不可信邮件,请采用如下配置:
{
"hooks": {
"mappings": [{
"id": "agentmail",
"sessionKey": "hook:email-review",
"deliver": false // 不自动投递至主聊天流
}]
}
}
随后可通过 /sessions 命令或专用指令手动审核。
scripts/send_email.py —— 发送含富文本及附件的邮件scripts/check_inbox.py —— 轮询邮箱获取新消息scripts/setup_webhook.py —— 配置 Webhook 终端以实现实时处理API.md —— 完整 API 参考文档与端点说明WEBHOOKS.md —— Webhook 配置与事件处理指南EXAMPLES.md —— 常见模式与典型用例