Папка Pickup в Exchange

Published on Январь 27, 2009 by   ·   Комментариев нет

Если вы смотрели структуру каталогов, которая создается после установки Exchange 2007, вы, возможно, заметили папку с названием Pickup, которая находится внутри нескольких подпапок корневого каталога Exchange. Эта папка также присутствовала в предыдущих версиях Exchange, и поэтому ее можно использовать в определенных целях. Одним из способов использования этой папки является ее предназначение для тестирования почтового потока без необходимости использования почтового клиента. Это осуществляется путем копирования специально созданных текстовых файлов в эту папку; после чего Exchange обработает и доставит их должным образом. В этой статье мы рассмотрим папку pickup и то, как ее использовать для тестирования почтового потока в рамках вашей инфраструктуры Exchange.

Настройка папки Pickup

Папка Pickup необязательно есть на каждом установленном сервере Exchange 2007. На самом деле она присутствует только на серверах Exchange 2007 с ролью Hub Transport или Edge Transport. По умолчанию папка pickup располагается в каталоге \Program Files\Microsoft\Exchange Server\TransportRoles на том разделе, на который вы установили Exchange, как показано на рисунке 1.

Pivkup exchange 2003

Рисунок 1: Стандартное расположение папки Pickup

Поскольку настройка папки pickup – это не то, что выполняете ежедневно, вы, вероятно, догадались, что настраивается она только с помощью оболочки Exchange Management Shell. Команда, которую можно использовать для осмотра параметров этой папки, выглядит следующим образом: Get-TransportServer. Однако если вы передадите результаты команды Get-TransportServer cmdlet в команду format-list, вы увидите, что с ней вернулось множество атрибутов сервера transport, в результате чего будет совсем не просто найти атрибуты, специфичные для данной папки. Поэтому нужно отфильтровать результаты, чтобы найти атрибуты, начинающиеся с pickup, в результате чего мы имеем следующую команду:


Get-TransportServer | fl pickup*

Результаты использования этой команды показаны на рисунке 2.

Exchange 2007 папка pickup

Рисунок 2: Атрибуты папки Pickup

При использовании этой команды следует обратить внимание на тот факт, что сервер, на котором я запустил эту команду, имеет установленную роль Hub Transport, поэтому мне не нужно ссылаться на имя сервера в этом примере. Важно помнить, что если вы хотите запустить эту команду на удаленном сервере, вам необходимо указать имя сервера, используя параметр ‘Identity. Вам также потребуется использовать данный параметр при выполнении Set-TransportServer команды для модификации конфигурации папки pickup, как мы увидим далее.

Давайте по очереди рассмотрим каждый атрибут с рисунка 2 и выясним, для чего каждый из них предназначен, хотя в большинстве случаев их название говорит само за себя. Во-первых, атрибут PickupDirectoryMaxHeaderSize используется для настройки максимального размера заголовка сообщения, которое Exchange 2007 Hub Transport или Edge Transport сервер будет получать. По умолчанию этот параметр имеет значение в 64KB и поэтому должен соответствовать для большинства случаев. Однако если вам все же нужно изменить это значение, вы можете использовать следующую команду:


Set-TransportServer ‘Identity {server name} ‘PickupDirectoryMaxHeaderSize {value}

Параметр {value} может быть выражен в любых единицах, начиная от байтов и заканчивая гигабайтами, используя следующий формат обозначения 128KB или 1MB.

Далее, атрибут PickupDirectoryMaxMessagesPerMinute определяет то, насколько быстро сервер может обрабатывать сообщения из папки pickup и имеет значение по умолчанию в 100. Это стандартное значение подходит для тестирования почтового потока в любых ситуациях, но если вам нужно написать приложение, располагающее более 100 сообщений в минуту в папку pickup, вам понадобится изменить это значение. Конечно, в таком случае было бы важно протестировать данную конфигурацию, чтобы убедиться в том, что такой объем потока сообщений не влияет на общую производительность системы.

Вы также можете ограничивать количество реципиентов на сообщение применительно к папке pickup посредством атрибута PickupDirectoryMaxRecipientsPerMessage. Стандартное значение составляет 100. Если вы настроили свою организацию Exchange 2007 так, что пользователи могут отправлять сообщения определенному максимальному количеству получателей, чтобы обеспечить должную производительность системы, следует настроить папку pickup для соответствия этому значению. Например, если вы хотите установить максимальное количество реципиентов сообщения, принадлежащего папке pickup, со значением в 500, то вам нужно использовать следующую команду:


Set-TransportServer ‘Identity {server name} ‘PickupDirectoryMaxRecipientsPerMessage 500

Наконец, вы можете изменять расположение папки pickup, модифицируя атрибут PickupDirectoryPath. Например, вы применили выделенный массив диска на своем сервере Hub Transport для управления очередями баз данных и хотите, чтобы этот выделенный массив также управлял вашей папкой pickup помимо прочих компонентов. Лично я предпочитаю указывать полный путь при перемещении папок в другие дисковые массивы. К примеру, если бы я перемещал папку pickup в раздел E:, я бы убедился в том, что расположение папки pickup было задано в E:\Program Files\Microsoft\Exchange Server\TransportRoles каталог посредством команды:


Set-TransportServer ‘Identity {server name} ‘PickupDirectoryPath
‘E:\Program Files\Microsoft\Exchange Server\TransportRoles\Pickup’

На данный момент вы можете поинтересоваться, можно ли использовать папку pickup в нечестивых целях, например отправлять нежелательные сообщения. Если это происходит, то, скорее всего, это дело рук кого-то из сотрудников вашей организации. Так что ответ на данный вопрос будет положительным, поэтому необходимо защищать данную папку соответственно. Если вы уверены в том, что вам не понадобится данная папка, вы можете отключить ее, указав ее путь как $null, как показано в следующей команде:


Set-TransportServer ‘Identity {server name} ‘PickupDirectoryPath $null

Помните, что папка pickup активна по умолчанию для всех серверов Exchange 2007 с ролями Hub Transport или Edge Transport.

Отправка сообщений

Теперь, когда мы настроили папку pickup со всеми необходимыми нам параметрами, давайте посмотрим, как можно ее использовать. Как я уже говорил ранее в этой статье, папка pickup используется для отправки сообщений через систему Exchange 2007 путем простого размещения сообщений электронной почты в эту папку. Сообщения могут создаваться в простом текстовом редакторе, например блокноте, и сохраняться как файлы с .eml расширением, после чего размещаться в папку pickup для обработки. Содержимое сообщения должно иметь правильный формат для успешной обработки. Пример простого текстового сообщения показан на рисунке 3. Обратите внимание на тот факт, что имя файла — message.eml. Чтобы Exchange 2007 корректно обрабатывал сообщение, файл должен иметь расширение .eml.

Exchange server 2003 transport server

Рисунок 3: Пример сообщения

Давайте посмотрим, что происходит, когда файл message.eml копируется в папку pickup. Во-первых, вы увидите краткое описание файла message.eml, перед тем как он будет переименован в message.tmp, как показано на рисунке 4. Этот процесс занял примерно пять секунд перемещения файла в папку. Допустим, все настроено правильно касаемо формата сообщения, тогда Exchange обработает его соответственно. В результате сообщение будет доставлено на желаемый адрес, как показано на рисунке 5. Довольно интересен тот факт, что .tmp файл заперт и не может быть открыт в блокноте; при попытке сделать это появляется сообщение об ошибке В доступе отказано.

Pickupdirectorymaxrecipientspermessage

Рисунок 4: Преобразование в .TMP файл

Exchange 2007 pickup

Рисунок 5: Доставленное сообщение

Эти .tmp файлы автоматически периодически удаляются системой. Мне показалось логичным, что служба Microsoft Exchange Transport должна отвечать за обработку сообщений из папки pickup, поэтому мне было интересно узнать, что произойдет, если данная служба будет остановлена и перезапущена, прежде чем файлы .tmp будут удалены. Когда предыдущий .tmp файл все еще существовал в папке pickup, я остановил и перезапустил службу Microsoft Exchange Transport и заметил, что все существующие .tmp файлы были удалены.

Неправильное форматирование

Что произойдет, если .eml файл имеет некорректный формат? При тестировании я взял оригинальный message.eml файл и удалил первую строку, определяющую отправителя сообщения. В результате вместо переименования файла в файл с .tmp расширением и последующей отправкой сообщения, Exchange переименовал его в файл с расширением .bad и оставил этот файл в папке pickup, как показано на рисунке 6.

Exchange server 2003 transport server

Рисунок 6: Некорректное сообщение

Вдобавок, в журнал регистрации событий приложений была внесена запись, как показано на рисунке 7. Запись имеет источник MSExchangeTransport и ID события 9010. Это описание довольно специфично для природы проблемы, но оно не указывает имени файла, ставшего причиной этой проблемы. Учитывая это, вам лишь нужно искать .bad файлы в папке pickup и осматривать их на предмет ошибок формата.

Pickupdirectorymaxrecipientspermessage

Рисунок 7: Запись журнала событий о некорректном сообщении

Еще один интересный момент, который я заметил, заключается в том, что в отличие от .eml файлов, как только в папке появлялся .bad файл, он не удалялся после остановки и перезапуска службы Microsoft Exchange Transport. Очевидно, эти файлы нужно удалять вручную, поэтому когда вы видите ID события, как показано на рисунке 7, знайте, что вам нужно вмешаться, чтобы не допустить нагромождения нежелательных файлов в этой папке. Я также заметил, что после того, как служба Microsoft Exchange Transport была перезапущена, новая копия 9010 ID события не записывалась в журнал регистрации событий, пока не появлялась новая ошибка некорректного сообщения. Это позволяет избежать ложных предупреждений всякий раз, когда служба Microsoft Exchange Transport перезапускается.

Заключение

Папка SMTP Pickup в серверах Exchange 2007 Hub Transport или Edge Transport может легко ускользнуть от внимания администраторов, которые хотят протестировать поток сообщений или, возможно, ищут простых способов отправки сообщений без использования почтового клиента. Однако стоит напомнить себе о существовании этой папки и более того, если вы заинтересованы в безопасности и не хотите ее использовать, вы всегда сможете отключить ее функциональные возможности.

Источник  http://www.msexchange.org


Смотрите также:

Tags:

Readers Comments (Комментариев нет)




Да человек я, человек! =)




Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]