вариант

С помощью API AgentMail можно предоставить ИИ-агентам собственные почтовые ящики. Используйте этот API при создании почтовых агентов, программной отправке и получении писем, управлении почтовыми ящиками, работе с вложениями, систематизации с помощью меток, создании черновиков для утверждения человеком или настройке уведомлений в режиме реального времени через веб-хуки/веб-сокеты. Поддерживается изоляция между пользователями с помощью под.

...Расширить все
93
Обновлено время 29 июня 2026 г.

О agentmail

AgentMail — это платформа для работы с электронной почтой, ориентированная в первую очередь на API и разработанная специально для ИИ-агентов, которая предоставляет возможности программного управления электронной почтой через удобный для разработчиков SDK. Она решает задачу предоставления ИИ-агентам собственных почтовых идентификаторов и возможности самостоятельно отправлять, получать и управлять почтовой перепиской. Вместо того чтобы создавать сложную почтовую инфраструктуру с нуля, разработчики могут быстро настроить почтовые ящики для своих ИИ-агентов и интегрировать почтовые функции в свои приложения всего несколькими строчками кода.

Платформа предоставляет комплексные функции управления электронной почтой, включая масштабируемое создание почтовых ящиков по запросу с автоматически сгенерированными или настраиваемыми адресами электронной почты, полное управление жизненным циклом сообщений с возможностью отправки и ответа, группировку переписки по цепочкам, организацию с помощью меток и работу с вложениями. Платформа поддерживает как текстовый, так и HTML-форматы электронных писем для оптимальной доставки, а также включает возможности уведомлений в режиме реального времени через веб-хуки и веб-сокеты. SDK доступен как для сред TypeScript/Node.js, так и для Python, предлагая единые API для обоих языков.

AgentMail идеально подходит для разработчиков, создающих почтовых агентов на базе ИИ, системы автоматизации поддержки клиентов, инструменты для взаимодействия и коммуникации или любые приложения, требующие программных возможностей работы с электронной почтой. Он поддерживает многопользовательские архитектуры с изоляцией на основе под (pod), что делает его подходящим для приложений SaaS, где нескольким агентам или клиентам требуются отдельные почтовые среды. Независимо от того, разрабатываете ли вы ИИ-помощника, которому необходимо отслеживать входящую почту, автоматизированную систему последующих действий или рабочий процесс утверждения черновиков, в котором ИИ готовит письма для проверки человеком, AgentMail предоставляет инфраструктуру и API для эффективной реализации этих сценариев использования.

Часто задаваемые вопросы

Какие языки программирования поддерживает AgentMail?

AgentMail [email protected] предоставляет официальную поддержку SDK для TypeScript/Node.js и Python. Оба SDK предлагают одинаковый базовый функционал для управления почтовыми ящиками, отправки и получения сообщений, организации с помощью меток и работы с цепочками писем.

Можно ли использовать собственные домены электронной почты с AgentMail?

Да, при создании почтового ящика вы можете указать собственные имена пользователей и домены. Если вы не укажете собственные параметры, AgentMail автоматически сгенерирует для вас адрес электронной почты, используя домен по умолчанию agentmail.to.

Как AgentMail организует переписку?

AgentMail [email protected] использует нити для группировки связанных сообщений в переписку, аналогично тому, как работают современные почтовые клиенты. Вы можете просматривать список нитей, фильтровать их по меткам и просматривать все сообщения в пределах одной нити. Кроме того, вы можете систематизировать сообщения с помощью пользовательских меток для гибкой классификации.

Нужно ли отправлять как текстовые, так и HTML-версии писем?

Да, AgentMail рекомендует всегда отправлять как текстовую, так и HTML-версии ваших сообщений для обеспечения наилучшей доставляемости. Это гарантирует совместимость с различными почтовыми клиентами и повышает вероятность успешной доставки ваших писем.

Поддерживает ли AgentMail уведомления в режиме реального времени?

Да, AgentMail поддерживает уведомления в режиме реального времени через веб-хуки и веб-сокеты, что позволяет вашему приложению мгновенно получать уведомления о поступлении новых сообщений или других событиях в почтовом ящике вашего агента.

Посмотреть на GitHub

AgentMail SDK

AgentMail is an API-first email platform for AI agents. Install the SDK and initialize the client.

Installation

# TypeScript/Nodenpm install agentmail# Pythonpip install agentmail

Setup

import { AgentMailClient } from "agentmail";const client = new AgentMailClient({ apiKey: "YOUR_API_KEY" });
from agentmail import AgentMailclient = AgentMail(api_key="YOUR_API_KEY")

Inboxes

Create scalable inboxes on-demand. Each inbox has a unique email address.

// Create inbox (auto-generated address)const autoInbox = await client.inboxes.create();// Create with custom username and domainconst customInbox = await client.inboxes.create({  username: "support",  domain: "yourdomain.com",});// List, get, deleteconst inboxes = await client.inboxes.list();const fetchedInbox = await client.inboxes.get("[email protected]");await client.inboxes.delete("[email protected]");
# Create inbox (auto-generated address)inbox = client.inboxes.create()# Create with custom username and domainfrom agentmail.inboxes.types import CreateInboxRequestinbox = client.inboxes.create(    request=CreateInboxRequest(username="support", domain="yourdomain.com"),)# List, get, deleteinboxes = client.inboxes.list()inbox = client.inboxes.get(inbox_id="[email protected]")client.inboxes.delete(inbox_id="[email protected]")

Messages

Always send both text and html for best deliverability.

// Send messageawait client.inboxes.messages.send("[email protected]", {  to: "[email protected]",  subject: "Hello",  text: "Plain text version",  html: "<p>HTML version</p>",  labels: ["outreach"],});// Reply to messageawait client.inboxes.messages.reply("[email protected]", "msg_123", {  text: "Thanks for your email!",});// List and get messagesconst messages = await client.inboxes.messages.list("[email protected]");const message = await client.inboxes.messages.get("[email protected]", "msg_123");// Update labelsawait client.inboxes.messages.update("[email protected]", "msg_123", {  addLabels: ["replied"],  removeLabels: ["unreplied"],});
# Send messageclient.inboxes.messages.send(    inbox_id="[email protected]",    to="[email protected]",    subject="Hello",    text="Plain text version",    html="<p>HTML version</p>",    labels=["outreach"])# Reply to messageclient.inboxes.messages.reply(    inbox_id="[email protected]",    message_id="msg_123",    text="Thanks for your email!")# List and get messagesmessages = client.inboxes.messages.list(inbox_id="[email protected]")message = client.inboxes.messages.get(inbox_id="[email protected]", message_id="msg_123")# Update labelsclient.inboxes.messages.update(    inbox_id="[email protected]",    message_id="msg_123",    add_labels=["replied"],    remove_labels=["unreplied"])

Threads

Threads group related messages in a conversation.

// List threads (with optional label filter)const threads = await client.inboxes.threads.list("[email protected]", {  labels: ["unreplied"],});// Get thread detailsconst thread = await client.inboxes.threads.get("[email protected]", "thd_123");// Org-wide thread listingconst allThreads = await client.threads.list();
# List threads (with optional label filter)threads = client.inboxes.threads.list(inbox_id="[email protected]", labels=["unreplied"])# Get thread detailsthread = client.inboxes.threads.get(inbox_id="[email protected]", thread_id="thd_123")# Org-wide thread listingall_threads = client.threads.list()

Attachments

Send attachments with Base64 encoding. Retrieve from messages or threads.

// Send with attachmentconst content = Buffer.from(fileBytes).toString("base64");await client.inboxes.messages.send("[email protected]", {  to: "[email protected]",  subject: "Report",  text: "See attached.",  attachments: [    { content, filename: "report.pdf", contentType: "application/pdf" },  ],});// Get attachmentconst fileData = await client.inboxes.messages.getAttachment(  "[email protected]",  "msg_123",  "att_456",);
import base64# Send with attachmentcontent = base64.b64encode(file_bytes).decode()client.inboxes.messages.send(    inbox_id="[email protected]",    to="[email protected]",    subject="Report",    text="See attached.",    attachments=[{"content": content, "filename": "report.pdf", "content_type": "application/pdf"}])# Get attachmentfile_data = client.inboxes.messages.get_attachment(    inbox_id="[email protected]",    message_id="msg_123",    attachment_id="att_456")

Drafts

Create drafts for human-in-the-loop approval before sending.

// Create draftconst draft = await client.inboxes.drafts.create("[email protected]", {  to: "[email protected]",  subject: "Pending approval",  text: "Draft content",});// Send draft (converts to message)await client.inboxes.drafts.send("[email protected]", draft.draftId, {});
# Create draftdraft = client.inboxes.drafts.create(    inbox_id="[email protected]",    to="[email protected]",    subject="Pending approval",    text="Draft content")# Send draft (converts to message)client.inboxes.drafts.send(inbox_id="[email protected]", draft_id=draft.draft_id)

Pods

Multi-tenant isolation for SaaS platforms. Each customer gets isolated inboxes.

// Create pod for a customerconst pod = await client.pods.create({ clientId: "customer_123" });// Create inbox within podconst inbox = await client.pods.inboxes.create(pod.podId, {});// List inboxes scoped to podconst inboxes = await client.pods.inboxes.list(pod.podId);
# Create pod for a customerpod = client.pods.create(client_id="customer_123")# Create inbox within pod (pods.inboxes.create accepts flat kwargs)inbox = client.pods.inboxes.create(pod_id=pod.pod_id)# List inboxes scoped to podinboxes = client.pods.inboxes.list(pod_id=pod.pod_id)

Idempotency

Use clientId for safe retries on create operations.

const inbox = await client.inboxes.create({  clientId: "unique-idempotency-key",});// Retrying with same clientId returns the original inbox, not a duplicate
from agentmail.inboxes.types import CreateInboxRequestinbox = client.inboxes.create(    request=CreateInboxRequest(client_id="unique-idempotency-key"),)# Retrying with same client_id returns the original inbox, not a duplicate

Real-Time Events

For real-time notifications, see the reference files:

  • webhooks.md - HTTP-based notifications (requires public URL)
  • websockets.md - Persistent connection (no public URL needed)

Установить agentmail

Скачайте файлы навыков и распакуйте их в каталог .claude/skills/.

Скачать ZIP

Клонируйте репозиторий и скопируйте файлы навыка в свой проект.

git clone https://github.com/agentmail-to/agentmail-skills/blob/main/agentmail/SKILL.md # Copy SKILL.md to your .claude/skills/ directory

Копировать Копировать
Быстрая настройка: Скопируйте папку со скиллом в каталог .claude/skills/ — Claude автоматически обнаружит и начнет использовать этот скилл
Репозиторий agentmail-to/agentmail-skills

Похожие навыки

web-search
Обновлено время 29 июня 2026 г.
webapp-testing
Обновлено время 29 июня 2026 г.
lark-base
Обновлено время 5 июля 2026 г.
computer-use
Обновлено время 29 июля 2026 г.
OR