Доставляемость и возвраты через API и MCP

Получайте сводки исходящей доставляемости и причины жёстких и мягких возвратов по получателям через REST API и MCP.

Сведения о статье

Тип, сложность, тарифы и дата последнего обновления.

Тип
Справочная статья
Сложность
Средний уровень
Тарифы
Starter · Pro · Agency
Обновлено
10 сен 2026 г.

На вкладке Статистика каждого домена в панели TrekMail представлены два вида данных о возвратах:

  1. Сводка за 30 дней: количество отправленных и доставленных писем, мягких и жёстких возвратов, а также показатели доставки и возвратов.
  2. Список по получателям: последние 50 возвратов исходящих писем с кодом состояния и ответом SMTP принимающего сервера, позволяющие понять, почему конкретное письмо не было доставлено.

Оба вида данных теперь доступны через REST API и сервер MCP. Агент может получать причины возвратов, оценивать состояние репутации и передавать данные в процессы очистки списков, не открывая панель.

Доступные данные

Интерфейс Эндпоинт Инструмент MCP Возвращает
Сводка домена GET /api/v1/domains/{domain}/deliverability get_domain_deliverability sent, delivered, soft_bounce, hard_bounce, forwarding_bounces_excluded, delivery_rate, bounce_rate, status ("good" / "warning" / "poor") за настраиваемый период (по умолчанию 30 дней, не более 90).
Возвраты домена GET /api/v1/domains/{domain}/bounces list_domain_bounces Постраничный список жёстких и мягких возвратов с полями recipient_email, event_type, smtp_status_code, smtp_response, occurred_at, mailbox_id.
Возвраты почтового ящика GET /api/v1/mailboxes/{mailbox}/bounces list_mailbox_bounces Такая же структура с ограничением по одному почтовому ящику для анализа репутации отдельного отправителя.

Для всех трёх требуются права domains:read (или mailboxes:read для списка по почтовому ящику). Доступ только для чтения. Ключ идемпотентности не нужен.

API использует те же данные о доставляемости, что и карточки статистики в панели, поэтому оба представления согласованы.

REST API: краткие примеры

Сводка домена

curl -sS -H "Authorization: Bearer $TM_TOKEN" \
  "https://trekmail.net/api/v1/domains/123/deliverability?days=30" | jq .
{
  "data": {
    "from": "2026-04-26T00:00:00+00:00",
    "to":   "2026-05-26T23:59:59+00:00",
    "sent": 4180,
    "delivered": 4112,
    "soft_bounce": 22,
    "hard_bounce": 46,
    "forwarding_bounces_excluded": 7,
    "delivery_rate": 0.9837,
    "bounce_rate": 0.0163,
    "status": "good"
  }
}

status соответствует тому же индикатору из трёх состояний, который отображается в панели:

  • good: доля возвратов ниже 2%.
  • warning: доля возвратов от 2% до 5%.
  • poor: доля возвратов не ниже 5%. Проверьте и очистите список рассылки.

forwarding_bounces_excluded показывает, сколько связанных с пересылкой возвратов было исключено из расчёта показателей (как и в панели, где они считаются артефактами маршрутизации, а не проблемами со списком отправителя).

Список возвратов по получателям

curl -sS -H "Authorization: Bearer $TM_TOKEN" \
  "https://trekmail.net/api/v1/domains/123/bounces?days=7&type=hard&limit=50" | jq .
{
  "data": [
    {
      "id": 994821,
      "occurred_at": "2026-05-26T18:14:02+00:00",
      "recipient_email": "lost@example.com",
      "event_type": "hard_bounce",
      "smtp_status_code": "550",
      "smtp_response": "5.1.1 The email account that you tried to reach does not exist.",
      "mailbox_id": 7741,
      "domain_id": 123
    }
  ],
  "pagination": { "total": 17, "limit": 50, "offset": 0 }
}

Параметры запроса

Параметр Тип По умолчанию Примечания
days целое число (1-90) 30 Период в прошлое от текущего момента.
type hard / soft / all all Фильтр по классу возврата.
recipient строка (не более 255) Пусто Частичное совпадение с recipient_email без учёта регистра.
limit целое число (1-100) 50 Размер страницы.
offset целое число (≥ 0) 0 Количество пропускаемых элементов для постраничной выдачи.

Список по почтовому ящику

Для анализа репутации отдельного отправителя ограничьте запрос одним почтовым ящиком:

curl -sS -H "Authorization: Bearer $TM_TOKEN" \
  "https://trekmail.net/api/v1/mailboxes/7741/bounces?days=14&type=soft" | jq .

Структура ответа такая же, как у эндпоинта домена.

Конфиденциальность ответов SMTP

TrekMail удаляет внутренние диагностические данные перед возвратом ответа SMTP. Оставшееся сообщение совпадает с тем, которое владелец учётной записи видит в панели, и предназначено для диагностики доставки, а не для раскрытия внутренних данных сервера.

Инструменты MCP

Все три инструмента принимают те же параметры, что и эндпоинты REST. Они работают только на чтение и не изменяют почту или настройки учётной записи.

get_domain_deliverability

{
  "name": "get_domain_deliverability",
  "arguments": {
    "domain_id": 123,
    "days": 30
  }
}

list_domain_bounces

{
  "name": "list_domain_bounces",
  "arguments": {
    "domain_id": 123,
    "type": "hard",
    "days": 7,
    "limit": 100
  }
}

list_mailbox_bounces

{
  "name": "list_mailbox_bounces",
  "arguments": {
    "mailbox_id": 7741,
    "recipient": "@example.com",
    "limit": 50
  }
}

Заголовки доставляемости для массовых отправителей

Если вы отправляете маркетинговые письма или массовую почту по подписке, крупные почтовые сервисы могут требовать заголовки для отписки одним нажатием. Google применяет это правило к маркетинговым письмам и сообщениям по подписке от отправителей, превышающих установленный порог массовой рассылки; правило одного нажатия не применяется к транзакционным сообщениям. Добавить заголовки можно двумя способами:

Для отдельного сообщения (точная настройка). Передайте их через поле headers запроса POST /api/v1/messages/send:

{
  "to": ["recipient@example.com"],
  "subject": "...",
  "body": {"text": "..."},
  "headers": {
    "List-Unsubscribe": "<mailto:bounces@mydomain.com?subject=unsubscribe>, <https://mydomain.com/u/abc123>",
    "List-Unsubscribe-Post": "List-Unsubscribe=One-Click"
  }
}

Поле headers принимает небольшой список разрешённых значений: List-Unsubscribe, List-Unsubscribe-Post, Reply-To и любой пользовательский заголовок отслеживания X-*. Внедрение заголовков (CR/LF) и управляемые заголовки (From, Subject, Date, Message-Id, Authentication-Results, DKIM-Signature и другие) отклоняются с кодом 422.

Для всей учётной записи (однократная настройка). Если все исходящие сообщения этой учётной записи автоматизированы, можно включить параметр auto_list_unsubscribe. Тогда платформа добавит заголовок List-Unsubscribe только с адресом mailto к каждому исходящему сообщению, в котором его ещё нет. Заголовок List-Unsubscribe-Post не добавляется, поэтому этот резервный вариант не обеспечивает отписку одним нажатием по RFC 8058. Для соответствующей требованиям провайдеров отписки одним нажатием передавайте оба заголовка в каждом сообщении со своим эндпоинтом HTTPS для отписки, как в примере выше. Заголовки, указанные вызывающей стороной, всегда имеют приоритет. По умолчанию параметр ВЫКЛЮЧЕН, а существующие учётные записи не меняются.

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

Сценарии для ИИ-агентов

Эти эндпоинты позволяют реализовать несколько полезных процессов:

  • Еженедельная сводка репутации. Каждый понедельник вызывайте get_domain_deliverability для каждого домена учётной записи и публикуйте сводку в Slack или Teams. Показывайте только домены, у которых status имеет значение warning или poor.
  • Очистка списка по возвратам. Вызовите list_domain_bounces?type=hard&days=14, удалите повторяющиеся значения recipient_email, затем исключите эти адреса из списка рассылки. Жёсткие возвраты обычно означают, что адрес получателя больше не существует, а повторная отправка напрасно расходует ресурс доставляемости.
  • Анализ по отправителю. Если bounce_rate одного почтового ящика резко вырос, вызовите для него list_mailbox_bounces и сгруппируйте результаты по smtp_status_code. Всплеск кодов 550 может означать, что список адресов устарел; всплеск кодов 421 может означать, что принимающий почтовый сервер ограничил частоту ваших запросов.
  • Расследование службы поддержки. Если пользователь сообщает, что письмо не пришло, попросите агента вызвать list_domain_bounces?recipient=<their-address>. Ответ SMTP может подсказать следующее действие, например освободить переполненный ящик получателя, снять блокировку со стороны получателя или исправить отклонение DMARC.

Управление версиями

Эти эндпоинты следуют тому же контракту версий, что и остальная часть API v1: допускаются только совместимые добавления, а несовместимые переименования полей требуют пространства имён v2/.

Связанные статьи

  • Показатели спама: телеметрия защиты от входящего спама (get_spam_metrics, get_spam_summary).
  • Проверка адресов: очистка списка до отправки, чтобы предотвратить возвраты.
  • Обзор API: аутентификация, права доступа, ограничения частоты и идемпотентность.

Похожие статьи

Перейдите к близким руководствам, которые продолжают рабочий процесс.

Как поручить ИИ-агенту покупку и настройку почты

Разрешите агенту купить и настроить TrekMail, не передавая контроль над Dashboard, платёжными данными, DNS и будущими изменениями подписки.

Читать статью

Обзор REST API TrekMail для разработчиков

Узнайте, как работает REST API TrekMail: аутентификация с bearer-токенами, доступ по тарифам, лимиты запросов и форматы ответов.

Читать статью

Создание и управление токенами API

Создавайте токены API в TrekMail. Задавайте области доступа, ограничения доменов и срок действия, чтобы точно управлять доступом.

Читать статью

Подключение ИИ-агентов к TrekMail через MCP

Подключайте любой совместимый MCP-клиент к TrekMail через авторизацию в браузере, универсальный CLI-мост или статические токены с узкими областями доступа.

Читать статью

Области API и разрешения тарифов

Сравните области TrekMail API для тарифов, дополнений, OAuth, участников, ограничений домена и защиты MCP, включая White Label.

Читать статью

Руководство по API и MCP для White Label

Настройте White Label для каждого домена: фирменный стиль, логотипы и брендированные хосты панели и веб-почты через REST API или MCP TrekMail.

Читать статью

Мы используем необходимые технологии для работы и защиты TrekMail. Подтверждая это, вы также разрешаете ограниченную аналитику и измерение рекламы, описанные в Политике cookie.

Вход в TrekMail

Доступ к панели, ящикам и DNS.

или

12 символов пароли совпадают

или

Письмо отправлено

Если для этого адреса есть аккаунт, мы отправили инструкции по сбросу пароля.

Продолжая, вы принимаете Условия и Политику конфиденциальности TrekMail.