В процессе обработки входящего и исходящего потока писем почтовому серверу Microsoft Exchange приходится принимать и отправлять десятки, а то и сотни писем в минуту. Причем далеко не всегда письмо может быть доставлено, например, внешнему получателя с первого раза. Причин такой ситуации может быть много – проблемы с доступом к Интернет, недоступность почтовой системы получателя и т.д. В таком случае сервер Exchange должен где-то хранить письмо до тех пор, пока оно не будет успешно доставлено. Для этого используется файл почтовой очереди – mail.que.
На самом деле через этой файл проходят все письма. Просто одни письма относительно быстро доставляются адресатам и, соответственно, удаляются из почтовой очереди.
Файл почтовой очереди mail.que не что иное, как файл базы данных ESE (например, как и файл БД Active Directory или файл почтовой базы Exchange), т.е. у него есть одна особенность – он никогда не уменьшается в размерах самостоятельно. Например, у вас пропал выход в Интернет. И все это время исходящая почта будет накапливаться в этом файле. Предположим, что у вас большой объем почтового траффика и у сервера не было возможности отправлять почту, скажем, день или более. В таком случае размер файла mail.que может вырасти до 50+ ГБ и более.
Чтобы уменьшить размер файла почтовой очереди его необходимо пересоздать вручную.
Общее описание сценария тестового окружения
В нашем примере мы будем использовать следующую схему:
т.е. в нашем случае будет два сервера Exchange 2019. Исходящая почта будет отправляться напрямую с почтовых серверов. Входящая почту будет транслироваться пограничным маршрутизаторов на балансировщик сетевой нагрузки KEMP LoadMaster, а с него уже распределяться между почтовыми серверам Exchange.
Уменьшение размера файла почтовой очереди
С высоты птичьего полета процедура уменьшения размера файла почтовой очереди выглядит следующим образом:
- Остановка получения новых писем на первом почтовом сервере. Ожидания отправки всех писем из имеющейся очереди.
- Остановка службы транспорта на первом почтовом сервере и удаление старого файла mail.que.
- Запуск службы транспорта на первом почтовом сервере.
- Остановка получения новых писем на втором почтовом сервере. Ожидания отправки всех писем из имеющейся очереди.
- Остановка службы транспорта на втором почтовом сервере и удаление старого файла mail.que.
- Запуск службы транспорта на втором почтовом сервере.
Более детально весь процесс будет приведен ниже.
Если у вас всего один почтовый сервер, то вам достаточно выполнить шаги с пункта 1 по пункт 3. Однако, стоит отметить, что в момент остановки службы транспорта входящая и исходящая почта обрабатываться не будет.
Итак, приступим:
1. Сначала подключаемся на первый почтовый сервер и в Exchange Management Shell проверяем нашу почтовую очередь:
Get-Queue
Видим, что наша почтовая очередь пуста и писем в ней нет, т.е. в таком случае мы готовы двигаться дальше.
Если наша транспортная очередь на первом почтовом сервере была бы не пустая, то предварительно необходимо дождаться пока все письма из транспортной очереди будут отправлены.
Для этого выполните следующий командлет:
Suspend-Service MSExchangeTransport
Этот командлет говорит транспортной службе прекратить принимать новые письма, но в то же время необходимо отправить уже имеющиеся письма.
После выполнения этого командлета периодически необходимо проверять следующим командлетом количество писем в почтовой очереди:
Get-Queue
Как только почтовая очередь будет пуста, то можно переходить к следующему шагу.
Возможно, не все письма из вашей почтовой очереди могут быть доставлены конечным адресатам (по разным причинам). Тут решение за вами – либо ждать пока письма все-таки будут доставлены, либо перейти к следующему шагу. При этом письма из почтовой очереди будут потеряны. Если у вас два почтовых сервера Exchange, то вероятнее всего механизм Shadow Redundancy уже создал копию письма на втором почтовом сервере.
2. Останавливаем службу транспорта на первом почтовом сервере:
Stop-Service MSExchangeTransport
Переходим в директорию с файлом почтовой очереди. Стандартное расположение файла (однако, в вашем случае расположение может отличаться, если соответствующие настройки были выполнены):
%ExchangeInstallPath%TransportRoles\data\Queue
Удаляем или переименовываем файл почтовой очереди mail.que.
3. Запускаем службы транспорта:
Start-Service MSExchangeTransport
В стандартной директории расположения файла почтовой очереди должен быть создан новый файл почтовой очереди mail.que.
4. Аналогичные действия выполняются на всех оставшихся почтовых серверах, если у вас более одного сервера Exchange (как в нашем случае).
Пересоздание файла почтовой очереди завершено.
Заключение
В этой короткой статье мы кратко поговорили о том, какие причины сопутствуют росту файла mail.que. обзорно рассмотрели процесс уменьшения размера файла почтовой очереди сервера Microsoft Exchange. Так же мы выполнили все необходимые шаги для уменьшения размера файла почтовой очереди на примере тестового развертывания Microsoft Exchange в конфигурации с двумя серверами.