среда, 8 декабря 2010 г.

Disclaimer в Exchange 2010, как механизм создания подписей

Картинка 4 из 10712Уверен, ни кому не нужно объяснять, что такое фирменный стиль и, сколько он может стоить. Но зачастую, деньги, потраченные на разработку бренд бука, оказываются потраченными впустую, т.к. ровным счетом ни кто в организации не собирается следовать его рекомендациям. В данной статье я хочу показать один из способов установки сотрудникам организации стандартизированной подписи и исключить ситуацию, когда каждый изобретает себе подпись сам.

Если вы являетесь администратором сервера Exchange, то в вашем распоряжении есть очень мощный и удобный инструмент по обработке, контролю и фильтрации сообщений. Инструментом этим являются Правила транспорта (Transport Rules). Правила транспорта выполняются на транспортном сервере-концентраторе (HUB) и обладают богатейшим функционалом, изучение которого может стать темой одной из следующих статей. Сегодня мы поговорим о механизме под названием Disclaimers.

Disclaimers или по-русски Заявление об отказе – это функционал транспортного сервера-концентратора (HUB), позволяющий автоматически добавлять в конец либо начало письма произвольный текст. Изначально этот механизм был разработан для внесения в письмо каких-либо юридических данных, которые предупреждали бы о том, что письмо содержит конфиденциальную информацию, его нельзя копировать, пересылать и т.п., но впоследствии оказалось, что с легкостью disclaimers можно использовать ещё и для добавления подписей. Замечателен этот механизм тем, что самостоятельно сотрудник не может отказаться от его использования, т.е. внесенная администратором информация будет принудительно включаться в каждое письмо, проходящее через транспортный сервер-концентратор и подпадающее под условия, установленные в правиле.

Создание транспортного правила

Итак, приступим. Начнем с того, что создадим транспортное правило, для этого откроем Exchange Management Console, перейдем на уровень конфигурирования организацииHub Transport – вкладка Transport Rules – нажмем кнопку New Transport Rule… (рис.1):

clip_image002

Рис.1: Создаем новое правило транспорта.

В результате откроется мастер по созданию транспортного правила. На первом шаге мастера указываем имя правила, например Signature, убеждаемся, что галочка Enable Rule активна и идем дальше.

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

clip_image003

Рис.2: Указываем условия для правила.

Далее мы выбираем действие, которое будет выполняться над сообщениями. В данном случае - действие Append Disclaimer text and fallback to action if unable to apply (Добавить текст заявления об отказе и вернуться к действию, если применить не удалось). Уточняем, куда именно добавлять текст – в начало или конец сообщения (append – в конец), и что нужно делать в случае неудачи (wrap - перенос). После этого вводим текст самой подписи (рис.3).

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

clip_image004

Рис.3: Создаем HTML-подпись.

Формат текста

Относительно самого текста – во-первых приятным моментом является то, что теперь при его разметке можно использовать HTML-тэги (в Microsoft Exchange Server 2007 такой возможности не было), во-вторых при помощи специальных переменных можно вставить разного рода информацию из учетной записи пользователя в Active Directory. Полный список предикатов, доступных на транспортных серверах-концентраторах можно уточнить в статье Предикаты правил транспорта библиотеки TechNet.

Как можно заметить из рис.3 для использования информации из Active Directory, предикат необходимо заключить между двойными знаками процента. Например, следующая конструкция - %%DisplayName%% позволит получить значение выводимого имени пользователя.

Возможность вставки HTML-тэгов позволяет нам не только использовать различные шрифты и цвета в подписи, но также вставлять графические изображения. Например, чтобы добавить логотип организации, нужно вставить следующий код:

<IMG src="http://alexxhost.ru/images/logo.gif">

При этом, очевидно, что изображение logo.gif должно быть заранее закачано на внешний сервер и в момент открытия письма получателем оно должно быть доступно для загрузки. Это достаточно серьезное неудобство, и о том, как с ним бороться мы поговорим в следующей статье.

Пытливый администратор сразу задастся вопросом – «А как же быть, если пользователь попытается отправить сообщение не в формате HTML, а в обычном текстовом?». Об этом разработчики тоже подумали - в таком случае из подписи попросту будут удалены все тэги, и останется только текст.

Примечание: Как и в любом другом деле, здесь нужно знать меру. В Exchange 2010 максимальная длина текст составляет 5 000 знаков с учетом HTML-тэгов.

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

<HR>

<IMG src="http://alexxhost.ru/images/logo.gif"><br />

С уважением, <br />

%%Title%% <br />

ООО «Моя фирма»,<br />

<b>%%DisplayName%%</b><br />

Тел. (1111) 12-34-56 доб. %%Phone%%,<br />

<a href="www.alexxhost.ru">www.alexxhost.ru</a>

clip_image006

Рис.4: Вид сообщений отправляемого и полученного.

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

После завершения работы мастера, мы сможем скопировать результирующую команду (Ctrl+C). У меня она получилась следующая:

New-TransportRule -Name 'Signature' -Comments '' -Priority '0' -Enabled $true -FromScope 'InOrganization' -ApplyHtmlDisclaimerLocation 'Append' -ApplyHtmlDisclaimerText '<HR>

<IMG src="http://alexxhost.ru/images/logo.gif">

С уважением, <br />

%%Title%% <br />

<b>%%DisplayName%%</b><br />

ООО «Моя фирма»

Тел. (1111) 12-34-56 доб. %%Phone%%,<br />

<a href="www.alexxhost.ru">www.alexxhost.ru</a>' -ApplyHtmlDisclaimerFallbackAction 'Wrap'

Заполнение пользовательской информации в AD

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

  1. Посадить «специально обученного» человечка и убедительно попросить его руками заполнить нужные поля;
  2. Воспользоваться PowerShell скриптами, которые могут считать данные из таблицы и записать в базу данных Active Directory. Уверяю вас, такие скрипты есть, нужно только спросить о них у google`a.
  3. Озадачить пользователей самих заполнить информацию о себе. Достаточное количество информации пользователь может сам заполнить через Exchange Control Panel (рис.5). При этом, ни каких дополнительных прав ему делегировать не нужно.

clip_image008

Рис.5: Exchange Control Panel, как средство редактирования данных учетной записи пользователя.

Заключение

На этом я хочу закончить обсуждение работы функции Disclaimer, уверен, что она будет для вас весьма полезной. В следующей статье «Управление клиентскими подписями MS Outlook при помощи GPP», я предлагаю обсудить ряд вопросов, связанных с редактированием уже имеющихся на компьютерах пользователей локальных подписей MS Outlook.

17 комментариев:

Анонимный комментирует...

Тема хорошая, только есть один нюанс. Проблема с цепочкой писем, когда отвечаешь с цитированием сообщения получается, что подпись располагается не в конце вашего текста, а в конце письма и получается:
"текст"
"цит. текст"
"цит. текст"
------
Подпись
Подпись
Подпись

Анонимный комментирует...

добавьте в исключения по содержанию в сабджекте надписей RE: и FW:

Анонимный комментирует...

Такое не сработает т.к. при ответе получается RE: и если добавить исключение, то подпись будет только одного собеседника. Тут нужно добавлять RE:RE: чтобы при втором ответе не отправлялось повторно подпись.

Анонимный комментирует...

А как всётаки правильно?

Анонимный комментирует...

Интересно, а все-таки возможно-ли добавить подпись именно в конце СВОЕГО текста, и до цитирования предыдущего письма?

Сергей комментирует...

для корректной работы хелпдеска нужно было добавить символ в тело письма, если оно пустое.
сделал по вашей схеме правило, добавляющее точку. нацелил данное правило на входящие письма одного ящика.
после включения правила все письма в организации стали приходить с задержкой 4-10 минут, либо сразу попадать в poison message и там застревать.
в чем может быть проблема?

Алексей Богомолов (Alexx) комментирует...

Надо посмотреть в Message Tracking Log по конкретному письму и уточнить на каком именно этапе идет задержка.

Александр Рачок комментирует...

Добрый день. Подскажите пожалуйста, а как быть, если пользователь должен по мере переписки использовать две подписи? К примеру, если переписка идет на английском языке - то подпись английская, если на русском - то русская. Спасибо за помощь

Анонимный комментирует...

Интересно, а все-таки возможно-ли добавить подпись именно в конце СВОЕГО текста, и до цитирования предыдущего письма?

Алексей Богомолов (Alexx) комментирует...

Я не знаю как это сделать. Возможно только через Outlook.

Анонимный комментирует...

А такой вопрос: Можно разграничить правила, действующие на одного пользователя (ящик) по времени. Например с 9 до 18 один ответ клиенту, отправляющему сообщение на определенный ящик, а с 18 до 6 другое.

Анонимный комментирует...

При отправлении письма через Outlook все ок. А когда отправляю с телефона в подписи выводится такая штука.



блабалабламблаблабам


Что делать?)

Анонимный комментирует...

При отправлении письма через Outlook все ок. А когда отправляю с телефона в подписи выводится такая штука.



(html)
(body)
Атрибуты из ад норм берет, вместо пробела & #43
(/html)
(/body)

*вместо скобок, конечно, стрелочки в которых теги.
Что делать?)

Алексей Богомолов (Alexx) комментирует...

А у Вас телефон точно по ActiveSync подключен (не POP3/IMAP)?

Анонимный комментирует...

Друзья, кто решил данную проблему?:

"текст"
"цит. текст"
"цит. текст"
------
Подпись
Подпись
Подпись

Анонимный комментирует...

Видимо ни кто, у самого такая же проблема.

Анонимный комментирует...

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

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