Главная Exchange/UC, Без рубрики, Новое Disclaimer в Exchange 2010, как механизм создания подписей
  • Disclaimer в Exchange 2010, как механизм создания подписей

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

    Если вы являетесь администратором сервера 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.

    Богомолов Алексей (Alexx)
    http://alexxhost.ru

Комментарии

  1. Классная фишка! С удовольствием прочитал.

    Было бы здорово, если бы можно было настроить транспортное правило так, чтобы оно не применялось к шифрованным сообщениям ? То есть, если сообщение отправляется в шифрованном виде, то обеспечение подписи – в зоне ответственности пользователя, если в нешифрованном, то подпись должен добавить сервер. Хотя наверное в этом случае – лучше вообще не использовать disclaimer для подписи, а подписи назначать через GP по вашей след. статье…

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

  3. Да, согласен, недостаток такой есть, в отличие от MS Outlook, сервер не может определить где заканчивается текст ответа и начинаются цитаты.

  4. Получается, что имеется классная фишка, пользоваться которой особого смысла нет :-).

    Наверное не зря ее назвали Disclaimer, а не Signature.

  5. Ну почему же нет смысла пользоваться, ИМХО, смысл есть, единственное условие здесь заключается в том, что пользователь мозг отключать не должен, тогда все будет хорошо 😉

  6. польузюсь.
    Только в другом исполнении.
    В автологоне прописан скрипт, который генерит подпись. VBS.
    Навертеть можно что угодно.
    Опять же сотрудник может отследить, если неверно заполнена AD.

  7. Будет здорово, если вы дадите ссылочку на скрипт, или выложите его сюда.

  8. гм.. по просьбам(пользует Word):
    signature.vbs

    On Error Resume Next
    Set objSysInfo = CreateObject(“ADSystemInfo”)

    strUser = objSysInfo.UserName

    If (InStr(strUser, “UserAccounts”) 0) Then

    Set objUser = GetObject(“LDAP://” & strUser)
    strName = objUser.FullName
    strTitle = objUser.Title
    strDepartment = objUser.Department
    strCompany = objUser.Company
    strPhone = objUser.telephoneNumber
    strMobPhone = objUser.mobile
    strMail = objUser.mail
    strPager= objUser.pager

    Set objWord = CreateObject(“Word.Application”)
    Set objDoc = objWord.Documents.Add()
    Set objSelection = objWord.Selection

    Set objEmailOptions = objWord.EmailOptions
    Set objSignatureObject = objEmailOptions.EmailSignature

    Set objSignatureEntries = objSignatureObject.EmailSignatureEntries

    objSelection.Font.Size = 10
    objSelection.Font.Name = “calibri”
    objSelection.Font.Color = 0
    objSelection.ParagraphFormat.SpaceBefore = 1
    objSelection.ParagraphFormat.SpaceBeforeAuto = False
    objSelection.ParagraphFormat.SpaceAfter = 1
    objSelection.ParagraphFormat.SpaceAfterAuto = False
    ‘objSelection.ParagraphFormat.LineSpacingRule = wdLineSpaceSingle

    objSelection.TypeText “———————————————————-”
    objSelection.TypeParagraph
    objSelection.TypeText strName
    objSelection.TypeParagraph

    objSelection.TypeText strTitle
    objSelection.TypeParagraph
    objSelection.TypeText strDepartment
    objSelection.TypeParagraph
    objSelection.TypeText strCompany
    objSelection.TypeParagraph
    ‘пробел
    objSelection.TypeParagraph

    if(len(trim(strPager))) then
    objSelection.TypeText “Тел.: “&strPager
    else
    if(len(trim(strPhone))) then
    objSelection.TypeText “Тел.: +7 (000) 123 45 67, доб. ” & Trim(strPhone)
    else
    objSelection.TypeText “Тел.: +7 (000) 123 45 67”
    end if
    end if

    ‘objSelection.TypeText “Тел.: +7 (000) 123 45 67, доб.” &strPhone
    objSelection.TypeParagraph

    objSelection.TypeText “Факс: +7 (000) 123 45 67”
    objSelection.TypeParagraph

    if(len(trim(strMobPhone))) then
    objSelection.TypeText “Тел. моб.: ” & strMobPhone
    objSelection.TypeParagraph
    end if

    objSelection.TypeText “E-mail:”
    objSelection.Hyperlinks.Add objSelection.Range, “mailto” & strMail, , , strMail
    objSelection.TypeParagraph
    Set objSelection = objDoc.Range()

    objSignatureEntries.Add “AD”, objSelection
    objSignatureObject.NewMessageSignature = “AD”
    objSignatureObject.ReplyMessageSignature = “AD”

    objDoc.Saved = True
    objWord.Quit
    End If

  9. Спасибо!

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

  11. Можно в исключениях по содержанию темы FW: или RE:

  12. Повторных добавлений своей подписи можно избежать добавив в исключения элементы этой самой подписи, но более гибко для рабочих мест с Outlook в домене генерировать подпись скриптом.
    Но для ActiveSync и OWA транспортное правило – вещь незаменимая!