Транспортные правила Exchange 2010 и оповещения пользователей


Схема:

1. Переход с Exchange 2003 на Exchange 2010: обе версии сосуществуют.

2. Пользователи уже целиком мигрированы на Exchange 2010

3. Два почтовых домена: olddomain.ru и newdomain.ru

4. Из вне почта olddomain.ru приходит на пограничный сервер Exchange 2003, а newdomain.ru на Edge сервер Exchange 2010

Цель: отказ от почтового домена olddomain.ru

Задача: оповестить пользователей, которым присылают письма на старый адрес olddomain.ru, чтобы они предприняли действия по извещению отправителей о новом почтовом адресе.

Почему извещаются именно получатели?

1. Именно они заинтересованы в получении (или не получении писем)

2. Именно они являются авторитетным (законным) источником для отправителей (любой посредник может оказаться злоумышленником!)

3. Отправителем с технической точки зрения может быть список рассылки и только получатель знает (или должен знать) как изменить подписку (самостоятельно или через ответственное лицо)

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

Решение: использовать транспортные правила Exchange 2010

Исполнение:

1. Надо поймать нужное письмо

2. Поменять заголовок

3. Вставить в тело письма текст нашего оповещения

Поймать нужное письмо.

Создаем транспортное правило с помощью визарда. Create a Transport Rule На первом шаге визард предлагает ввести имя нового транспортного правила.

Затем нужно составить условие, по которому будет выполнен отбор сообщения для выполнения действия над ним.

clip_image001

Как видите на скриншоте, выбрано условие «when the message header contains specific words». Почему именно это? Как выяснилось три тестировании, Exchange 2003 при получении сообщения на адрес olddomain.ru ищет получателя в Active Directory, затем берет Primary email address, который в нашем случае уже newdomain.ru, и отправляет сообщение уже по этому адресу. Таким образом в организации Exchange сообщение уже не нацелено на адрес olddomain.ru! В результате если в транспортном правиле на Exchange 2010 выбрать условие «when a recipients address contains text patterns» или условие «when a recipients properties contains specific words» и указать olddomain.ru, то правило не сработает!

Тем не менее в служебном заголовке сообщения в заголовке «To» по-прежнему содержится значение olddomain.ru, и мы можем поймать сообщение по условию «when the message header contains specific words», указав в нем заголовок «To» и его значение olddomain.ru

Поменять заголовок

Теперь когда условие создано, на следующем шаге визарда приступим к настройке действий, которые необходимо выполнить над сообщением. Transport Rule Actions

Сначала модифицируем заголовок письма. Для этого выбираем действие «prepend the subject with string» и записываем в него значение «>>> Внимание!!! <<<».

clip_image002

Вставка текста нашего сообщения

Теперь нужно добавить в письмо наше сообщение, которое разъяснит получателю, что ему необходимо сделать и почему. Для этого выбираем действие «append disclaimer text and fallback to action if unable to apply».

Привожу для примера текст сообщения:

<h3>Внимание!</h3> <p></p><p>Это письмо отправлено на старый адрес: <font color=»red» size=4>olddomain.ru</font></p><p> Новый адрес: <font color=»blue» size=4>newdomain.ru</font></p> <p><h3>Оповестите отправителя о вашем новом адресе!</h3></p>

Как видите, можно использовать форматированный текст. Подробнее о настройке Disclaimer можно прочитать в разделе документации Understanding Disclaimers и Configure a Disclaimer. В текст Disclaimer можно вставлять значения атрибутов Active Directory. Это работает для отправителя, но в нашем случае отправитель находится вне AD и размещение %%Email%% в тексте вставляет пустое значение – в нашем случае эта функция оказывается бесполезной и приходится писать в тексте нашего сообщения имя нового домена явным образом как newdomain.ru.

Заключение

Как мы увидели, транспортные правила Exchange 2010 являются мощным и полезным инструментом, с помощью которого можно решать далеко нетривиальные задачи.

комментария 2

  1. Клевое решение. Илья а почему не стали сохранять старый почтовый домен? Нехай бы валились на оба адреса…
    По поводу отсутствия правил в Exchange 2003 маленькая ремарочка — SMTP Event Sink еще не отменили :) Хотя чтобы реализовать подобное с его помощью — наизнанку пришлось бы вывернуться. А тут все красиво и изящно.

    • Со старым доменом все просто: решение руководства компании о смене почтового домена. А потом наступает момент, когда нужно убрать хвосты…

      Event Sink в Exchange 2003 это C++ и на коленке за час не сделаешь. В Exchange 2010 не разбирался, но вроде стало проще в том смысле, что можно (или нужно?) использовать C#. Но все равно трудоемкость большая.

Оставьте комментарий