Да, 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 писем и очистка очереи любым другим способом занимала в разы больше времени.
Собственно, способ следующий:
- Остановить службу SMTP.
- Запустить Exchange System Manager.
- В настройках SMTP сервера посмотреть где находится папка с очередью.
- Удалить (или переименовать) эту папку. Я именно переименовывал папку, т.к. удаление папки “наглухо” вешало Проводник.
- Запустить службу SMTP.
Способ 2. Очистка всей очереди утилитой adadmcli
Если вам необходимо очистить полностью все очереди, то выполните следующее:
- Запустите утилиту через командную строку на сервере Exchange.
- Выполните команду по удалению всех писем во всех очередях:
setserver "Servername"
delmsg flags=all
, где "Servername
” имя или IP-адрес вашего сервера Exchange.
Именно этим способом я и очистил всю очередь.
Коллеги, используйте утилиту только на свой страх и риск, т.к. её поддержка, ровно, как и поддержка Exchange 2003 уже давно закончилась.
Способ 3. Удаление отдельных сообщений из очереди утилитой adadmcli
Если вам необходимо очистить только письма для какого-то одного отправителя, то выполните следующие действия:
- Запустите утилиту через командную строку на сервере Exchange.
- Выполните команду по удалению всех писем во всех очередях:
setserver "Servername"
delmsg flags=sender,sender=user@mydomain.local
, где "Servername"
имя или IP-адрес вашего сервера Exchange, а user@mydomain.local
– имя отправителя, для которого нужно удалить письма из очереди.