为AI代理提供真实的收发邮件功能,使用Robotomail。在用户请求发送邮件、查看收件箱、阅读或回复邮件时使用此技能。
机器人邮件 — 给您的AI代理一个真实的Inbox. robotomail 允许一个AI代理程序发送,接收,并响应电子邮件是一项面向实际任务的技能,主要用于它是自动代理的API- first电子邮件基础设施, assistancea。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
Robotomail 允许 AI Agent 以编程方式发送、接收并响应电子邮件。它是面向自主 Agent、助手和工作流的、以 API 为核心的电子邮件基础设施。
当您希望 Agent 实现以下功能时,可使用 Robotomail:
robotomail.co 地址,或自定义域名为您的 Agent 配置真实邮箱,使其能够对入站客服邮件进行分类、摘要、草拟回复或直接应答。
让 Agent 从其专属邮箱发送提醒、轻量提示(nudges)、收据、预约确认或外发跟进邮件。
通过 Webhook 或 SSE 订阅入站邮件事件,使 Agent 能够即时唤醒并响应。
若用户首次使用 Robotomail,最快路径如下:
https://robotomail.com 注册,或通过 POST /v1/signup 创建账户GET /v1/mailboxes 查看已有邮箱,或使用 POST /v1/mailboxes 创建新邮箱POST /v1/mailboxes/{id}/messages 发送一封测试邮件GET /v1/mailboxes/{id}/messages?direction=INBOUND 读取入站邮件所有请求均需在 Authorization 请求头中携带 API 密钥:
Authorization: Bearer
基础 URL: https://api.robotomail.com
若用户尚未获取 API 密钥,可通过 https://robotomail.com 注册,或调用 POST /v1/signup 创建账户。
| 任务 | 方法 | 端点 |
|---|---|---|
| 发送一封邮件 | POST | /v1/mailboxes/{id}/messages |
| 列出收件箱中的邮件 | GET | /v1/mailboxes/{id}/messages?direction=INBOUND |
| 读取某封特定邮件 | GET | /v1/mailboxes/{id}/messages/{msgId} |
| 列出会话线程 | GET | /v1/mailboxes/{id}/threads |
| 读取某个线程 | GET | /v1/mailboxes/{id}/threads/{tid} |
| 列出邮箱列表 | GET | /v1/mailboxes |
| 创建一个邮箱 | POST | /v1/mailboxes |
| 添加自定义域名 | POST | /v1/domains |
| 验证域名 DNS 配置 | POST | /v1/domains/{id}/verify |
| 配置 Webhook | POST | /v1/webhooks |
| 通过 SSE 流式传输事件 | GET | /v1/events |
| 上传附件 | POST | /v1/attachments(multipart) |
| 下载附件 | GET | /v1/attachments/{id} |
| 查询账户信息与用量 | GET | /v1/account |
如需完整端点说明(含请求/响应 Schema),请参阅 references/api-reference.md。
当 Robotomail 需要将事件推送至您的公网 HTTPS 终端时,请使用 Webhook。
当 Agent 希望通过单个长连接维持实时事件流(例如运行本地监听器或 Agent 主循环)时,请使用 SSE。
若用户表述类似“流式接收入站邮件”、“监听新消息”或“实时收件箱事件”,请优先选用 SSE。
GET /v1/mailboxes — 找到用于发信的邮箱POST /v1/mailboxes/{id}/messages,传入 to、subject、bodyText(可选 bodyHtml)inReplyTo 字段,其值为原始邮件 messageId 头部的值GET /v1/mailboxesGET /v1/mailboxes/{id}/messages?direction=INBOUNDGET /v1/mailboxes/{id}/messages/{msgId}messageId 字段值POST /v1/mailboxes/{id}/messages,设置 inReplyTo 为原始邮件的 messageId 值POST /v1/domains,请求体为 {"domain": "example.com"}dnsRecords 字段,并提示用户在其 DNS 提供商处完成相应配置POST /v1/domains/{id}/verifyPOST /v1/mailboxes,请求体为 {"address": "agent", "domainId": ""} POST /v1/webhooks,传入 url 和 events: ["message.received"]secret 字段值(仅返回一次)X-Robotomail-Signature 请求头校验 Webhook 投递(基于 secret 对 payload 进行 HMAC-SHA256 签名)签名验证代码详见 references/webhook-verification.md。
GET /v1/eventsmessage.received、message.delivered、message.bounced 和 message.complaint 事件POST /v1/attachments(multipart/form-data,字段名为 file,单文件最大 25MB)idattachments: [""] 带附件的入站邮件在两个接口层面暴露附件信息,但其结构不同。请根据您的访问模式选择合适的方式 —— 不要假设 REST 接口响应中已包含可直接使用的下载 URL。
message.received 事件载荷 — data.attachments[] 中每个附件均提供开箱即用的 download_url 字段(R2 预签名 URL,自发布起 24 小时有效),以及 id、filename、content_type、size_bytes 和 content_id 字段。字段命名采用 snake_case。可直接发起 HTTP GET 下载,无需 Authorization 头:for att in event.data.attachments:
bytes = HTTP_GET(att.download_url)
save_to(att.filename, bytes)
GET /v1/mailboxes/{id}/messages 与 GET /v1/mailboxes/{id}/messages/{msgId} — attachments[] 仅包含元数据(id、filename、contentType、sizeBytes、contentId),不含 URL 字段。如需下载,请对每个附件 ID 调用 GET /v1/attachments/{id},并在该响应中使用 url 字段。字段命名采用 camelCase。此方式也适用于刷新旧 Webhook/SSE 回放中已过期的 download_url。内联图片:当附件的 content_id(Webhook/SSE 中为 snake_case)或 contentId(REST 中为 camelCase)非空时,该附件将在 body_html / bodyHtml 中以 形式被引用。在将 HTML 传递给渲染器或视觉模型前,需将每个 cid: 引用替换为实际可下载的 URL。来自 Webhook/SSE 载荷(其中 download_url 已附于附件对象):
for att in event.data.attachments where att.content_id is not None:
body_html = body_html.replace(f"cid:{att.content_id}", att.download_url)
来自 REST 接口读取的邮件,则需先为每个内联附件单独获取预签名 URL:
for att in message.attachments where att.contentId is not None:
url = GET(f"/v1/attachments/{att.id}").url
bodyHtml = bodyHtml.replace(f"cid:{att.contentId}", url)
附件截断限制:若单封邮件附件数超过 20 个,或任一附件大小超过 25 MB,则事件载荷中将包含 attachments_dropped: true 及 attachments_dropped_reason: "size" | "count" | "both"。邮件本身仍会投递,但超限附件不会被存储。如检测到该标志,请主动告知用户。
429robotomail.co 域名下的邮箱若发送请求返回 429,表示该邮箱已触及日/月限额或速率限制。请向用户说明情况,并建议其降低频率或升级至付费计划(如当前使用免费版)。
所有错误均返回标准格式 {"error": "message"},并附带标准 HTTP 状态码:
401 — 缺失或无效的 API 密钥403 — 账户已被暂停,或作用域受限的密钥尝试访问受保护资源。暂停状态下响应中将包含 { "suspended": true, "reason": "bounce_rate_exceeded" }。请提示用户联系 support@robotomail.com。404 — 资源未找到429 — 触发了速率限制、发送频率限制或配额限制413 — 附件过大bodyText 提供纯文本版本;仅在需要富文本格式时额外添加 bodyHtml。GET /v1/mailboxes/{id}/threads/{tid})在回复前查看完整对话历史。since 参数(ISO-8601 格式)仅获取最近的邮件。GET /v1/suppressions)包含所有发生退信或投诉的邮箱地址 —— 发送前请检查目标地址是否已在该列表中。相关专题
热门下载
精品课程
共1课时 | 168人学习
共0课时 | 0人学习
共1课时 | 219人学习
最新文章