Списки

Фильтрация почты через разрешение или блокировку адресов и доменов.

Что такое списки?

Lists фильтруют почту: разрешают или блокируют конкретные адреса или домены. Шесть типов по двум осям:

  • Направление: send, receive или reply
  • Тип: allow или block
СписокОписание
Receive allowПринимать письма только с этих адресов или доменов
Receive blockОтклонять письма с этих адресов или доменов
Send allowОтправлять только на эти адреса или домены
Send blockЗапретить отправку на эти адреса или домены
Reply allowПринимать ответы только с этих адресов или доменов
Reply blockОтклонять ответы с этих адресов или доменов

Запись — либо полный email (например partner@example.com), либо целый домен (например example.com).

Область действия (scoping)

Списки задаются на трёх уровнях. Более узкая область перекрывает более широкую:

  • Organization: на всю организацию — client.lists.
  • Pod: на все inbox в pod — client.pods.lists.
  • Inbox: на один ящик — client.inboxes.lists.

При решении «разрешить или заблокировать» сначала проверяется самый конкретный уровень. Если сработал список уровня inbox, pod и org не проверяются.

Списки для ответов (reply)

Направление reply относится к входящим письмам, которые являются ответами на ранее отправленные вами. По заголовку In-Reply-To определяется, ответ это или нет:

  • Если это ответ на исходящее сообщение — проверяются только reply-списки. Receive-списки не используются.
  • Если это не ответ — проверяются только receive-списки. Reply-списки не используются.

Ветки независимы. По умолчанию при пустых reply-списках все ответы разрешены. Ограничить ответы можно через reply allow или reply block.

Примеры SDK

Записи списка

Получить записи с опциональной пагинацией.

1entries = client.lists.list("receive", "allow", limit=10)

Создать запись

Добавить адрес или домен. Параметр reason необязателен и доступен для block-списков.

1# allow — reason не нужен
2client.lists.create("receive", "allow", entry="partner@example.com")
3
4# block — reason необязателен
5client.lists.create("receive", "block", entry="spam@example.com", reason="spam")

Получить запись

Найти запись по email или домену.

1entry = client.lists.get("receive", "allow", entry="partner@example.com")

Удалить запись

1client.lists.delete("receive", "allow", entry="partner@example.com")

Списки уровня inbox

Те же операции для одного ящика.

1# Добавить в receive allowlist inbox
2client.inboxes.lists.create(
3 "inbox_id", "receive", "allow", entry="vip@example.com"
4)
5
6# Список записей inbox
7entries = client.inboxes.lists.list("inbox_id", "receive", "allow")

Reply-списки

Кто может отвечать на исходящие письма ящика.

1# Разрешить ответы только с домена
2client.lists.create("reply", "allow", entry="nobu.com")

Скопировать в Cursor / Claude

Скопируйте один из блоков ниже для полного контекста по API списков.

1"""
2Agent Inbox Lists, copy into Cursor/Claude.
3
4Filter emails by allow/block for send/receive/reply. 6 types: receive|send|reply x allow|block.
5Lists can be scoped to org, pod, or inbox level.
6
7API reference (org-level):
8- lists.list(direction, type, limit?, page_token?)
9- lists.create(direction, type, entry, reason?), reason only for block lists
10- lists.get(direction, type, entry)
11- lists.delete(direction, type, entry)
12
13Pod-level: pods.lists.list(pod_id, direction, type, ...) and same for create/get/delete.
14Inbox-level: inboxes.lists.list(inbox_id, direction, type, ...) and same for create/get/delete.
15
16Entry: full email (user@domain.com) or domain (example.com).
17Cascade: inbox > pod > org (most specific scope wins).
18Reply lists: inbound replies (detected via In-Reply-To) check reply lists, not receive lists.
19"""
20from agentinbox import Agentinbox
21
22client = Agentinbox(api_key="YOUR_API_KEY")
23
24# Org-level lists
25entries = client.lists.list("receive", "allow", limit=10)
26client.lists.create("receive", "allow", entry="partner@example.com")
27client.lists.create("receive", "block", entry="spam@example.com", reason="spam")
28e = client.lists.get("receive", "allow", entry="partner@example.com")
29client.lists.delete("receive", "allow", entry="partner@example.com")
30
31# Reply lists
32client.lists.create("reply", "allow", entry="nobu.com")
33
34# Inbox-level lists
35client.inboxes.lists.create("inbox_id", "receive", "allow", entry="vip@example.com")
36inbox_entries = client.inboxes.lists.list("inbox_id", "receive", "allow")