Skip to navigation

Как использовать Pods для мультитенантной почты?

Изоляция ящиков, доменов и данных по арендаторам.

Pod — изолированное рабочее пространство: свои ящики, домены, треды и черновики, отдельно от других Pods.

Когда нужны Pods

  • SaaS: у каждого клиента свои агенты и ящики
  • Агентства: изоляция по клиентам
  • Платформы агентов: отдельные workspace
  • White-label: почта под брендом конечного пользователя

Если почта только для одной организации, Pods необязательны.

Иерархия

Organization (your business)
└── Pod (Customer A)
├── Inbox: support@customera.com
├── Inbox: sales@customera.com
└── Domain: customera.com
└── Pod (Customer B)
├── Inbox: hello@customerb.com
└── Domain: customerb.com

Данные между Pods не пересекаются.

Создание Pod и ресурсов

Python
from agentinbox import Agentinbox
client = Agentinbox()
pod = client.pods.create(name="Acme Corp")
support_inbox = client.pods.inboxes.create(
pod_id=pod.pod_id,
username="support",
domain="acme.com",
display_name="Acme Support"
)
sales_inbox = client.pods.inboxes.create(
pod_id=pod.pod_id,
username="sales",
domain="acme.com",
display_name="Acme Sales"
)

Используйте client_id у Pod как ваш внутренний ID клиента — не нужна отдельная таблица соответствий.

Python
pod = client.pods.create(
name="Acme Corp",
client_id="customer_12345"
)

Ресурсы внутри Pod

Python
inboxes = client.pods.inboxes.list(pod_id=pod.pod_id)
threads = client.pods.threads.list(pod_id=pod.pod_id)
drafts = client.pods.drafts.list(pod_id=pod.pod_id)

Удаление Pod

Сначала удалите ящики и домены — пустой Pod удалить можно.

Python
inboxes = client.pods.inboxes.list(pod_id=pod.pod_id)
for inbox in inboxes.inboxes:
client.inboxes.delete(inbox.inbox_id)
client.pods.delete(pod_id=pod.pod_id)

Удаление ящика удаляет связанные сообщения, треды и черновики.

Важно

  • Почта между Pods ходит как между обычными адресами; изоляция — в доступе к API и данным, не в доставке.
  • Ящик нельзя перенести между Pods — создайте новый в целевом Pod.
  • Ключи pod и ключи ящика — см. POST /pods/{pod_id}/api-keys и POST /inboxes/{inbox_id}/api-keys.
  • Лимита на число Pods нет.
  • Домен привязан к одному Pod или ко всем, но не к подмножеству Pods.

Подробнее: Pods.