专为AI智能体设计的API优先邮件平台,支持创建管理专用邮箱、程序化收发邮件及处理邮件相关任务。
AgentMail.是一项面向实际任务的技能,主要用于AgentMail是一个API- First电子邮件平台,专门为AI代理设计. 与传统电子邮件提供者(Gmail, Outlook)不同,AgentMail提供程序收件箱,使用基数。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
AgentMail 是一个以 API 为先的电子邮件平台,专为 AI agent 设计。与传统邮件服务(如 Gmail、Outlook)不同,AgentMail 提供可编程邮箱、按用量计费、高并发发送能力以及实时 Webhook 通知。
pip 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 转换器(transform)实现发件人白名单校验。
~/.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 终端以支持实时处理