Работа с очередями в Exchange Server

Очереди в Exchange Server используются для временного хранения сообщений, которые ещё не доставлены. Администратору важно уметь контролировать их состояние, диагностировать проблемы и очищать очереди при необходимости.

  • Queue Viewer (Exchange Toolbox) — графический интерфейс для просмотра очередей.
  • Exchange Management Shell — PowerShell-командлеты для управления очередями.
Задача Команда
Показать список очередей `Get-Queue`
Показать сообщения в очереди `Get-Message -Queue "Server\submission"`
Приостановить очередь `Suspend-Queue -Identity "Server\submission"`
Возобновить очередь `Resume-Queue -Identity "Server\submission"`
Удалить все сообщения с отчётом NDR `Remove-Message -Queue "Server\submission" -WithNDR $true`
Форсировать повторную доставку `Retry-Queue -Identity "Server\domain.com"`
  • Submission Queue
    1. Первое место, куда попадает сообщение после приёма (из Outlook, OWA, SMTP).
    2. Из этой очереди письма передаются на обработку транспортным правилам и дальше в нужные очереди доставки.
  • Mailbox Delivery Queue
    1. Очередь доставки сообщений в почтовые базы данных Exchange.
    2. Если база недоступна или перегружена — письма скапливаются здесь.
  • Remote Delivery Queue
    1. Очередь доставки на внешние SMTP-серверы (например, gmail.com, yandex.ru).
    2. Каждое доменное имя (NextHopDomain) имеет отдельную очередь.
  • Poison Queue
    1. Очередь для «опасных» сообщений, которые вызвали сбой в транспортной службе (например, зацикленные письма или повреждённые заголовки).
    2. По умолчанию администратор сам решает: удалить или повторно обработать письма.
  • Shadow Redundancy Queue
    1. Используется для обеспечения надёжности. Exchange хранит копию письма до подтверждения, что оно доставлено следующим хопом.

Свойство DeliveryType указывает, каким образом очередь будет пытаться доставить сообщения. Ниже приведены основные типы с описанием:

DeliveryType Назначение
ShadowRedundancy Используется механизм «теневой избыточности». Сообщение временно хранится, пока следующий хоп (сервер-получатель) не подтвердит успешное получение. Обеспечивает надёжность доставки.
SmartHostConnectorDelivery Доставка через Send Connector, у которого явно задан смартхост (обычно внешний релей или шлюз). Письма уходят через указанный сервер, минуя прямой MX-запрос.
SmtpDeliveryToMailbox Используется при доставке сообщений напрямую в почтовый ящик через SMTP (например, в сценариях Edge Transport или внешних коннекторов).
SmtpRelayToDag Внутренняя доставка внутри DAG (Database Availability Group). Сообщения пересылаются между членами DAG для балансировки или при активации копий баз данных.
SmtpRelayToMailboxDeliveryGroup Используется для пересылки сообщений в группу серверов доставки почтовых ящиков (Mailbox Delivery Group). Сообщение отправляется на один из серверов группы по SMTP.
Undefined Тип доставки не определён. Может встречаться в промежуточных состояниях или при ошибках конфигурации.
DeliveryType Назначение
DnsConnectorDelivery Доставка через Send Connector, у которого тип маршрутизации — DNS. Сервер сам ищет MX-записи домена получателя.
NonSmtpGatewayDelivery Используется для доставки в коннекторы, работающие не через SMTP (например, Foreign Connector для интеграции с приложениями).
DeliveryAgent Передача сообщений в сторонний агент доставки (Delivery Agent Connector). Обычно применяется для интеграции с системами защиты или сторонними шлюзами.
Unreachable Очередь «Unreachable» — письма, которые не удалось маршрутизировать ни в одну очередь. Обычно указывают на ошибку конфигурации коннекторов или проблемный адрес.

Очереди хранятся в файле:

  C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\data\Queue\mail.que    

Журналы транспорта:

  C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Hub\ProtocolLog\SmtpSend 
  C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive    
  C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpSend 
  C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\FrontEnd\ProtocolLog\SmtpReceive   

Журналы трекинга сообщений:

  C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\MessageTracking

Чтобы увидеть события для очереди типа SmtpRelayToDag в логе C:\Program Files\Microsoft\Exchange Server\V15\TransportRoles\Logs\Hub\ProtocolLog\SmtpReceive или SmtpSend необходимо

  1. разрешить логирование в коннеторе Default <Имя сервера> типа HUB Transport
  2. поднять детализацию логов до IntraOrgConnectorProtocolLoggingLevel Verbose
get-transportService <Имя сервера> |set-TransportService  -IntraOrgConnectorProtocolLoggingLevel Verbose

1. Проверить состояние очередей

Get-Queue | ft Identity,Status,MessageCount,NextHopDomain -Auto

2. Посмотреть сообщения в проблемной очереди

Get-Message -Queue "Server\RemoteDelivery\contoso.com" | ft FromAddress,Subject,Status -Auto

3. Проверить последние ошибки доставки

Get-Message -Queue "Server\RemoteDelivery\contoso.com" | Select-Object FromAddress,Subject,LastError

4. Проверить сетевое соединение до домена

Test-SmtpConnectivity -Identity "Server"

или вручную:

telnet mail.contoso.com 25

5. Форсировать повторную попытку доставки

Retry-Queue -Identity "Server\RemoteDelivery\contoso.com" -Resubmit $true

6. Если проблема в конкретном письме — удалить его

Get-Message -Queue "Server\RemoteDelivery\contoso.com" | Remove-Message -WithNDR $true
Код ошибки Описание
`450 4.4.317 Cannot connect to remote server` Exchange не может установить соединение с удалённым SMTP-сервером. Проверить DNS, маршрутизацию, порты.
`450 4.4.318 Connection was closed abruptly (SuspiciousRemoteServerError)` Удалённый сервер неожиданно закрыл соединение. Возможны проблемы на стороне получателя или фильтрация.
`451 4.7.0 Temporary server error. Please try again later. PRX5` Ошибка временного характера, часто связана с прокси/гибридным окружением.
`421 4.4.2 Connection dropped` Соединение оборвано из-за таймаута или фильтрации.
`550 5.1.1 User unknown` Указанный получатель не существует.
`550 5.7.1 Unable to relay` Отказ в пересылке: сервер не разрешает ретрансляцию писем.
`554 5.4.4 DNS lookup failure` Ошибка разрешения MX-записи домена получателя.

* При задержках доставки сообщений. * При ошибках связи с внешними доменами. * Для анализа «застрявших» писем. * Для тестирования и принудительной доставки.