opção

Crie caixas de entrada de e-mail exclusivas para agentes de IA usando a API AgentMail. Utilize-a ao desenvolver agentes de e-mail, enviar/receber e-mails programaticamente, gerenciar caixas de entrada, lidar com anexos, organizar com rótulos, criar rascunhos para aprovação humana ou configurar notificações em tempo real por meio de webhooks/websockets. Oferece suporte ao isolamento multilocatário com pods.

...Expandir tudo
96
Tempo atualizado 29 de Junho de 2026

Sobre agentmail

AgentMail é uma plataforma de e-mail com foco em API, projetada especificamente para agentes de IA, que oferece recursos programáticos de e-mail por meio de um SDK fácil de usar para desenvolvedores. Ela resolve o desafio de fornecer aos agentes de IA suas próprias identidades de e-mail e a capacidade de enviar, receber e gerenciar comunicações por e-mail de forma autônoma. Em vez de construir uma infraestrutura complexa de e-mail do zero, os desenvolvedores podem provisionar rapidamente caixas de entrada de e-mail para seus agentes de IA e integrar a funcionalidade de e-mail em seus aplicativos com apenas algumas linhas de código.

A plataforma oferece recursos abrangentes de gerenciamento de e-mail, incluindo a criação escalável de caixas de entrada sob demanda com endereços de e-mail gerados automaticamente ou personalizados, gerenciamento completo do ciclo de vida das mensagens com recursos de envio e resposta, agrupamento de conversas por threads, organização por rótulos e gerenciamento de anexos. Ela suporta os formatos de e-mail de texto simples e HTML para uma entrega ideal e inclui recursos de notificação em tempo real por meio de webhooks e websockets. O SDK está disponível para os ambientes TypeScript/Node.js e Python, oferecendo APIs consistentes em ambas as linguagens.

AgentMail É ideal para desenvolvedores que estão criando agentes de e-mail com inteligência artificial, sistemas de automação de suporte ao cliente, ferramentas de divulgação e comunicação ou qualquer aplicativo que exija recursos programáticos de e-mail. Ele suporta arquiteturas multilocatárias com isolamento baseado em pods, tornando-o adequado para aplicativos SaaS em que vários agentes ou clientes precisam de ambientes de e-mail separados. Seja para desenvolver um assistente de IA que precise monitorar uma caixa de entrada, um sistema automatizado de acompanhamento ou um fluxo de trabalho de aprovação de rascunhos em que a IA prepara e-mails para revisão humana, o AgentMail fornece a infraestrutura e as APIs para lidar com esses casos de uso de maneira eficiente.

Perguntas frequentes

Quais linguagens de programação o AgentMail suporta?

AgentMail O [email protected] oferece suporte oficial ao SDK para TypeScript/Node.js e Python. Ambos os SDKs oferecem a mesma funcionalidade básica para gerenciar caixas de entrada, enviar e receber mensagens, organizar com rótulos e lidar com threads.

Posso usar domínios de e-mail personalizados com o AgentMail?

Sim, você pode criar caixas de entrada com nomes de usuário e domínios personalizados ao criar uma caixa de entrada. Se você não especificar parâmetros personalizados, o AgentMail gerará automaticamente um endereço de e-mail para você usando o domínio padrão agentmail.to.

Como o AgentMail organiza as conversas por e-mail?

AgentMail O [email protected] usa threads para agrupar mensagens relacionadas em uma conversa, de forma semelhante ao funcionamento dos clientes de e-mail modernos. Você pode listar threads, filtrá-las por rótulos e recuperar todas as mensagens dentro de uma thread. Além disso, é possível organizar as mensagens usando rótulos personalizados para uma categorização flexível.

Preciso enviar versões em texto simples e em HTML dos e-mails?

Sim, o AgentMail recomenda sempre enviar versões em texto simples e em HTML de suas mensagens para garantir a melhor capacidade de entrega. Isso garante a compatibilidade entre diferentes clientes de e-mail e aumenta as chances de seus e-mails serem entregues com sucesso.

O AgentMail oferece suporte a notificações em tempo real?

Sim, o AgentMail oferece suporte a notificações em tempo real por meio de webhooks e websockets, permitindo que seu aplicativo seja notificado imediatamente quando novas mensagens chegarem ou outros eventos ocorrerem na caixa de entrada do seu agente.

Ver no 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)

Todos os arquivos

3 arquivos
SKILL.md 7.1k
Ver

Instalar agentmail

Baixe e extraia os arquivos de habilidades para o diretório .claude/skills/.

Baixar ZIP

Clone o repositório e copie os arquivos da habilidade para o seu projeto.

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

Copiar Copiar
Configuração rápida: Copie a pasta da habilidade para .claude/skills/. O Claude detectará e utilizará automaticamente a habilidade

Habilidades relacionadas

web-search
Tempo atualizado 29 de Junho de 2026
webapp-testing
Tempo atualizado 29 de Junho de 2026
lark-base
Tempo atualizado 5 de Julho de 2026
computer-use
Tempo atualizado 29 de Julho de 2026
OR