Письма в очереди

/listqueue
Кто именно ждёт

Перечисляет письма, которые сейчас лежат в очереди, — с отбором.

Вызов — GET /listqueue?format=json&queue=домен/адрес. Любая половина пары может быть звёздочкой. Необязательные параметры сужают выборку: jobid — задание, envid — идентификатор конверта, rcpt — получатель, orig — отправитель.

Отвечает на вопрос, на который не ответит ни один счётчик: где конкретное письмо и что ещё ждёт отправки конкретному человеку. queue=*/* с rcpt ищет получателя по всему узлу.

Доступ решает http-access по адресу, откуда пришёл запрос, — для чтения хватает уровня monitor. Ключ из http-api-key в заголовке X-API-Key даёт полный доступ с любого адреса.

Главная ловушка — выборка */* без отбора. Точка перечисляет письма поштучно, и на узле с большой очередью такой запрос отдаёт ответ размером с саму очередь. Отбор получателем, отправителем или заданием держит ответ коротким.
Что делает Хаб. Не спрашивает: письма поштучно Хаб не показывает, а удаление очереди и смену её режима выполняет командами через /command.
Рекомендуемые значения

О чём спрашивать эту точку:

Вопрос Она ли
где конкретное письмо да — отбор rcpt или orig
что ещё ждёт по одной рассылке да — отбор jobid
сколько писем в очереди нет — /queues
что было вчера нет — это учёт
Параметры queue, jobid, envid, rcpt, orig и звёздочки — из руководства (§ 5.13). Разграничение вопросов и совет про отбор — наши.
Пример в конфигурации
# все письма одному получателю по всему узлу
curl -s 'http://127.0.0.1:8080/listqueue?format=json&queue=*/*&rcpt=user@example.com'curl -s 'http://127.0.0.1:8080/listqueue?format=json&queue=gmail.com/vmta1&jobid=12'
Первая строка ищет получателя во всех очередях узла, вторая — письма одного задания в одной очереди.
жёлтым — — имена директив, голубым — блоки. Так же они подсвечены и в тексте карточки.
Совместимость
PowerMTA 6.0
описана в руководстве этой версии · платформа: любая
С какой версии директива доступна, вендор указывает не для всех — здесь пометки нет. Имя встречается и в издании руководства 5.0.
Как проверить на узле
Сверить ответ с консолью:
curl -s 'http://127.0.0.1:8080/listqueue?format=json&queue=*/*&rcpt=user@example.com' | head -40
pmta list --rcpt=user@example.com
У команды свой потолок — сто получателей по умолчанию, больше показывает –maxitems. Если консоль письмо видит, а запрос нет, — проверить права адреса запроса в http-access.
В Хабе
Цена ошибки
безопасно: неверное значение ничего не ломает
Сценарии
Разобрать зависшую очередь · Разделение отправителей