Массовая очистка почтовой очереди на сервере Microsoft Exchange Server 2003

Да, Exchange 2003 еще местами встречается даже в 2021 году 🙂 И с ним приходится работать. Администрирования Exchange 2003 практически полностью отличается от администрирования даже того же Exchange 2007, не говоря уже про более поздние версии. У них у всех, в отличии от Exchange 2003, есть очень хороший инструмент – модуль PowerShell. Особенно он мог бы пригодится в массовой очистке почтовой очереди.

Процедура очистка почтовой очереди на Exchange 2003 через графически интерфейс администрирования не должна вызывать каких-то сложностей. Для каждого целевого домена создается своя очередь. Открыв просмотр писем этой очереди, вы уже можете удалить все письма как с отчетом о невозможности доставки (non delivery report – NDR), так и без него. Однако, что же делать, если нужно очистить почтовую очередь, например, для сотни доменов?

Первый способ – удаление папки с очередью (но требует остановки SMTP сервиса). Второй способ – использование сторонних утилит.

Еще во времени Exchange 2003 Microsoft подготовил отдельную утилиту для массовой работы с почтовыми очередями на Exchange 2003 – aqadmcli. Проблема в том, что в 2021 мне потребовалось далеко не 5 минут, чтобы найти исполняемый файл этой утилиты, т.к. на сайте Microsoft её уже давно нет. Если кому-то она пригодится, то вот ссылка на архив с утилитой.

Массовая очистка очереди

Теперь перейдем непосредственно к очистке очереди.

Способ 1. Ручное удаление через очистку файлов

Я использовал этот способ, когда в почтовой очереди было порядка 80 000 писем и очистка очереи любым другим способом занимала в разы больше времени.

Собственно, способ следующий:

  1. Остановить службу SMTP.
  2. Запустить Exchange System Manager.  
  3. В настройках SMTP сервера посмотреть где находится папка с очередью.
  4. Удалить (или переименовать) эту папку. Я именно переименовывал папку, т.к. удаление папки “наглухо” вешало Проводник.
  5. Запустить службу SMTP.

Способ 2. Очистка всей очереди утилитой adadmcli

Если вам необходимо очистить полностью все очереди, то выполните следующее:

  1. Запустите утилиту через командную строку на сервере Exchange.
  2. Выполните команду по удалению всех писем во всех очередях:
setserver "Servername"
delmsg flags=all

, где "Servername” имя или IP-адрес вашего сервера Exchange.

Именно этим способом я и очистил всю очередь.

Коллеги, используйте утилиту только на свой страх и риск, т.к. её поддержка, ровно, как и поддержка Exchange 2003 уже давно закончилась.

Способ 3. Удаление отдельных сообщений из очереди утилитой adadmcli

Если вам необходимо очистить только письма для какого-то одного отправителя, то выполните следующие действия:

  1. Запустите утилиту через командную строку на сервере Exchange.
  2. Выполните команду по удалению всех писем во всех очередях:
setserver "Servername"
delmsg flags=sender,sender=user@mydomain.local

, где "Servername" имя или IP-адрес вашего сервера Exchange, а user@mydomain.local – имя отправителя, для которого нужно удалить письма из очереди.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *