По умолчанию каталог раскладки существует на каждом компьютере Microsoft Exchange Server 2007 с установленной ролью транспортного сервера-концентратора или ролью транспортного пограничного сервера. Правильно отформатированные файлы сообщений электронной почты, скопированные в каталог раскладки, передаются для доставки. Каталог раскладки используется администраторами для тестирования потока почты, а также приложениями, которые должны создавать и отправлять свои собственные сообщения.

С помощью командлета Set-TransportServer можно выполнять все задачи настройки каталога раскладки. Используя этот командлет, можно внести следующие изменения в конфигурацию каталога раскладки:

Обработка сообщений в каталоге раскладки

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

  1. Каталог раскладки проверяется на появление новых файлов сообщений каждые 5 секунд. Этот интервал опроса изменить нельзя. Можно настроить скорость обработки файлов сообщений с помощью командлета Set-TransportServer с параметром PickupDirectoryMaxMessagesPerMinute. Значение по умолчанию — 100 сообщений в минуту. Файлы, которые не удается открыть, остаются в каталоге раскладки и повторно обрабатываются при следующем опросе.

  2. Проверяются ограничения, установленные для файлов сообщений в каталоге раскладки, такие как максимальный размер заголовка и максимальное количество получателей. По умолчанию максимальный размер заголовка — 64 КБ, а максимальное количество получателей равно 100. Эти ограничения можно изменить с использованием командлета Set-TransportServer.

  3. Имя файла меняется с <имя_файла>.eml на <имя_файла>.tmp. Если файл <имя_файла>.tmp уже существует, новому файлу будет присвоено имя <имя_файла><дата_и_время>.tmp. Если не удалось переименовать файл, генерируется ошибка журнала событий и в процессе раскладки начинается обработка следующего файла.

  4. Если TMP-файл успешно преобразован в сообщение электронной почты, для него генерируется команда «удалить по закрытии». Этот TMP-файл остается в каталоге раскладки, однако он не может быть открыт.

  5. После того, как сообщение помещено в очередь доставки, генерируется команда «закрыть» и TMP-файл удаляется из каталога раскладки. Если не удалось выполнить удаление, генерируется ошибка журнала событий. Если служба транспорта Microsoft Exchange перезапущена при наличии файлов с расширением TMP в каталоге раскладки; расширение всех этих файлов меняется на EML, и они обрабатываются повторно. Это может привести к дублированию передачи сообщения.

Структура файла сообщения электронной почты

Стандартное сообщение электронной почты SMTP состоит из конверта сообщения и содержимого сообщения. Конверт сообщения содержит сведения, требуемые для передачи и доставки сообщения. Содержимое сообщения включает в себя поля заголовка с общим названием заголовок сообщения и текст сообщения. Конверт сообщения описан в документе RFC 2821, а заголовок сообщения — в документе RFC 2822.

Когда отправитель составляет сообщение электронной почты и отправляет его для доставки, это сообщение содержит базовые сведения, необходимые для обеспечения соответствия стандартам SMTP, такие как сведения об отправителе, получателе, дате и времени составления сообщения, тему сообщения (необязательно) и текст сообщения (необязательно). Данные сведения содержатся в самом сообщении и, по определению, в заголовке сообщения. Сервер обмена сообщениями отправителя создает для сообщения конверт сообщения на основе данных отправителя и получателя, содержащихся в заголовке сообщения, после чего передает сообщение в Интернет для доставки на сервер обмена сообщениями получателя. Получатели не видят конверта сообщения, так как он создается в процессе передачи сообщения и фактически не является частью самого сообщения. Каждый сервер, участвующий в передаче сообщения, может вставлять в заголовок сообщения поля заголовка сообщения с указанием роли этого сервера в доставке сообщения или другие поля заголовка сообщения в зависимости от приложения. Когда получатель открывает сообщение с помощью клиента электронной почты, данной программой отображаются некоторые наиболее важные сведения заголовка сообщения, такие как отправитель, получатели, тема сообщения и его текст.

Лучшая аналогия при описании связи между конвертом сообщения и заголовком сообщения — отправка обычной почты в крупной компании. Составляется формальное деловое письмо с адресом компании и адресом получателя в верхней части письма. Письмо передается секретарям для обработки. Секретари заполняют поля конверта, используя сведения о получателе, указанные в письме, запечатывают письмо в конверт и опускают его в почтовый ящик. Почтовая служба доставляет конверт в компанию получателя по адресу, указанному на конверте. Секретари в компании получателя конверта определяют по конверту получателя, вскрывают конверт и кладут письмо в личную почтовую ячейку получателя. Когда получатель забирает письмо из личной ячейки, из заголовка письма он понимает, что оно написано вами и предназначено для него.

Требования к файлам сообщения в каталоге раскладки

Чтобы доставка файла сообщения, скопированного в каталог раскладки, была успешно выполнена, этот файл должен отвечать следующим требованиям:

  • Файл сообщения должен быть текстовым файлом, соответствующим формату базового SMTP-сообщения. Поддерживаются поля заголовка и содержимое сообщения в формате MIME.

  • Файл должен иметь расширение EML.

  • В заголовке сообщения в полях Sender или From: должен быть указан, по меньшей мере, один адрес электронной почты. Если в полях Sender и From: указан один адрес электронной почты, то в качестве источника сообщения в конверте сообщения будет использоваться поле From:.

  • В поле Sender может существовать только один адрес электронной почты. Наличие нескольких адресов не допускается. Поле «Отправитель» является необязательным, если в поле From: указан единственный адрес электронной почты.

  • В поле From: может быть указано несколько адресов, однако при этом в поле Sender должен быть указан один адрес электронной почты. Адрес в поле Sender затем используется в качестве источника сообщения в конверте сообщения.

  • В полях To:, Cc: или Bcc: должен быть указан по меньшей мере один адрес электронной почты.

  • Между заголовком и текстом сообщения должна стоять пустая строка.

Ниже следует пример текстового сообщения с форматированием, допустимым в каталоге раскладки:

Копировать код
To: mary@contoso.com
From: bob@fabrikam.com
Subject: Message subject

This is the body of the message.

В файлах сообщений каталога раскладки также поддерживается MIME-содержимое. Формат MIME определяет широкий диапазон содержимого сообщений, куда входят языки, которые не могут быть отображены с использованием 7-битового текстового формата ASCII, HTML-код и другое мультимедийное содержимое. Полное описание формата MIME и его требований не относится к содержанию данного раздела. Ниже следует пример простого MIME-сообщения с форматом, допустимым для каталога раскладки:

Копировать код
To: mary@contoso.com
From: bob@fabrikam.com
Subject: Message subject
MIME-Version: 1.0
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 7bit

<HTML><BODY>
<TABLE>
<TR><TD>cell 1</TD><TD>cell 2</TD></TR>
<TR><TD>cell 3</TD><TD>cell 4</TD></TR>
</TABLE>
</BODY></HTML>

Изменения заголовка сообщения в файлах сообщений из каталога раскладки

В каталоге раскладки из заголовка сообщения удаляются все следующие поля заголовка сообщения:

  • Received:

  • Resent-*:

  • Bcc:   Все адреса электронной почты, указанные в дополнительных полях заголовка сообщения Bcc:, обрабатываются должным образом. После того, как получатели, указанные в поле Bcc:, преобразуются в невидимых получателей конверта сообщения, они удаляются из заголовка сообщения в целях сохранения их конфиденциальности. Если сообщение содержит только получателей Bcc:, в поле To: заголовка сообщения добавляется значение «Скрытые получатели».

В каталоге раскладки в процессе отправки в сообщение добавляется новое поле заголовка Received:. Поле заголовка Received: применяется в следующем формате:

Копировать код
Received: from localhost by Pickup with Microsoft SMTP Server id <ExchangeServerVersion><datetime>

В каталоге раскладки изменяются следующие поля заголовка сообщения, если они отсутствуют или имеют неправильный формат:

  • Message-Id. Если поле Message-Id отсутствует или не имеет значения, в каталоге раскладки добавляется поле Message-Id с использованием формата <GUID-идентификатор>@<домен_по_умолчанию>.

  • Date:. Если поле Date отсутствует или имеет неправильный формат, в сообщение добавляется дата и время обработки сообщения в каталоге раскладки.

Сбои при обработке сообщений в каталоге раскладки

Постановка в очередь доставки файла сообщения, скопированного в каталог раскладки, может завершиться неудачно. Могут возникнуть следующие категории сбоев при передаче сообщения:

  • Сбои доставки. Если каталогу раскладки не удается доставить правильно отформатированный файл сообщения с допустимым отправителем, создается отчет о недоставке (NDR). Отчет о недоставке также создается в том случае, если сообщение имеет неправильный формат или в случае нарушения ограничений, установленных в каталоге раскладки. Если отчет о недоставке создается в процессе обработки сообщения в каталоге раскладки, в сообщение отчета вкладывается исходный файл сообщения, который после этого удаляется из каталога раскладки.

    Примечание.
    При доставке правильно отформатированного сообщения, переданного каталогом раскладки, может произойти сбой, в этом случае сообщение возвращается отправителю с отчетом о недоставке. Такой тип сбоя может быть вызван проблемами передачи данных, не имеющими отношения к каталогу раскладки, например сбоем сервера обработки сообщений или сбоями маршрутизации в процессе доставки сообщения.
  • Недопустимый формат. Сообщение считается имеющим недопустимый формат, если каталог раскладки не может передать это сообщение для доставки в связи с ошибками его формата. Такие сбои также возникают в том случае, если сообщение имеет правильный формат, однако указаны недопустимые получатели сообщения, а также недопустимый отправитель, что не позволяет отправить отчет о недоставке.

    Файл сообщения, которое определено как недопустимое, остается в каталоге раскладки, его имя меняется с <имя_файла>.eml на <имя_файла>.bad. Если файл <имя_файла>.bad уже существует, имя нового файла меняется на <имя_файла><дата_и_время>.bad. Если в каталоге раскладки присутствуют недопустимые файлы, генерируется ошибка журнала событий, однако это происходит только один раз в отношении одного файла.

Примечание.
Всегда формируйте и сохраняйте файлы сообщений в другом расположении перед их копированием в каталог раскладки. Каталог раскладки проверяется на наличие новых сообщений каждые 5 секунд. Таким образом, если сообщение создается и сохраняется непосредственно в каталоге раскладки, файлы сообщения могут быть обработаны до завершения их сборки.

Вопросы безопасности для каталога раскладки

В Exchange Server 2003 используется единый каталог раскладки для создания и отправки файлов текстовых сообщений. ВExchange 2007 эта функциональность разделена на каталоги раскладки и преобразования. Каталог раскладки предназначен для ручного создания файлов сообщений пользователями или приложениями. Каталог преобразования используется для повторной передачи экспортированных сообщений электронной почты Exchange, а также для получения сообщений с внешних серверов шлюза.

В следующем списке приводятся вопросы в области безопасности, характерные для каталога раскладки и каталога преобразования:

  • Любые проверки безопасности, настроенные на получающем соединителе, такие как защита от нежелательной почты, вирусов, фильтрация отправителей и фильтрация получателей, не выполняются в отношении сообщений, предоставленных через каталог раскладки или каталог преобразования.

  • Скомпрометированный каталог раскладки или каталог преобразования может выступать в качестве открытого ретранслятора. Это позволяет передавать, или «ретранслировать» сообщения с использованием другого сервера в целях маскировки настоящего источника сообщений.

Разделение каталогов раскладки и преобразования означает, что для них можно установить разные уровни безопасности. К каталогу преобразования следует применить более жесткие параметры безопасности, поскольку связанные с этим каталогом угрозы безопасности выше. Пользователям или приложениям, которые должны создавать и передавать сообщения, можно предоставить доступ к каталогу раскладки, однако им не нужен доступ к каталогу преобразования.

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

Разрешения для каталога раскладки

Для каталога раскладки требуются следующие разрешения:

  • Администратор: полный доступ

  • Система: полный доступ

  • Сетевая служба: чтение, запись и удаление вложенных папок и файлов

По умолчанию служба транспорта Microsoft Exchange использует учетные данные безопасности учетной записи сетевой службы для управления расположением и разрешениями каталога раскладки. Учетной записи сетевой службы требуются эти разрешения в отношении каталога раскладки для открытия EML-файлов, переименования их в TMP-файлы и удаления либо переименования в BAD-файлы, если сообщение признано недопустимым.

Расположение каталога раскладки можно переместить с помощью параметра PickupDirectoryPath командлета Set-TransportServer. Успех попытки изменить расположение каталога раскладки зависит от прав, предоставленных учетной записи сетевой службы в новом расположении каталога раскладки, а также от того, существует ли уже новый каталог раскладки. Если новый каталог раскладки не существует и сетевая служба обладает правами, требуемыми для создания папок и применения разрешений в новом расположении, будет создан новый каталог раскладки, к которому будут применены правильные разрешения. Если новый каталог раскладки уже существует, существующие разрешения на работу с папками не проверяются. При перемещении каталога раскладки с помощью параметра PickupDirectoryPath командлета Set-TransportServer рекомендуется проверять наличие нового каталога раскладки с примененными к нему верными разрешениями. Если изменение каталога раскладки выполнить не удалось, можно создать новый каталог раскладки и применить к нему правильные разрешения, а затем воспользоваться параметром PickupDirectoryPath командлета Set-TransportServer.

Дополнительные сведения

Для получения дополнительных сведений см. следующие разделы: