Назад | Перейти на главную страницу

Принудительное применение политики подписи в Exchange 2003 с использованием полей Active Directory

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

Кто-нибудь нашел изящное решение для автоматической генерации подписей Outlook / Exchange 2003 на основе полей Active Directory?

Мне очень повезло со сценарием, который я написал. Он записывает из различных полей AD в невидимый документ Word, затем копирует его в Outlook 2007 как подпись по умолчанию и отвечает.

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

On Error Resume Next

Set objSysInfo = CreateObject("ADSystemInfo")

strUser = objSysInfo.UserName
Set objUser = GetObject("LDAP://" & strUser)

strName = objUser.FullName
strTitle = objUser.Title
strDepartment = objUser.Department
strCompany = objUser.Company
strPhone = objUser.telephoneNumber
strFax = objUser.faxNumber

strStreet = objUser.StreetAddress
strCity = objUser.L
strState = objUser.St
strPOBox = objUser.postalCode

strFirstName = objUser.givenName
strInitials = objUser.initials
strLastName = objUser.sn
If strInitials = "" Then
    strFullName = strFirstName & " " & strLastName
Else
    strFullName = strFirstName & " " & strInitials & ". " & strLastName
End If

Set objWord = CreateObject("Word.Application")

Set objDoc = objWord.Documents.Add()
Set objSelection = objWord.Selection
objSelection.Style = "No Spacing" 
objSelection.Font.Name = "Calibri"
objSelection.Font.Size = "11"

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

Set objSignatureEntries = objSignatureObject.EmailSignatureEntries

objSelection.TypeParagraph()
objSelection.TypeText "Sincerely,"
objSelection.TypeParagraph()
objSelection.TypeParagraph()
objSelection.TypeText "ORGANIZATION NAME"
objSelection.TypeParagraph()
objSelection.TypeParagraph()
objSelection.TypeText strFullName & ", " & strTitle
'objSelection.TypeText strName & ", " & strTitle
objSelection.TypeParagraph()
objSelection.TypeParagraph()
objSelection.TypeText strStreet
objSelection.TypeParagraph()
objSelection.TypeText strCity & ", " & strState & " " & strPOBox
objSelection.TypeParagraph()
objSelection.TypeText "Desk: " & strPhone
objSelection.TypeParagraph()
objSelection.TypeText "Fax:    " & strFax
objSelection.TypeParagraph()

'Hyperlink below
objDoc.Hyperlinks.Add objSelection.Range, "www.yoursitename.com", "", "", "www.yoursitename.com", ""

objSelection.TypeParagraph()
objSelection.TypeParagraph()

'Picture below
Set objShape = objSelection.InlineShapes.AddPicture("\\fileserver\path\to\image.BMP")

Set objSelection = objDoc.Range()

objSignatureEntries.Add "AD Signature", objSelection
objSignatureObject.NewMessageSignature = "AD Signature"
objSignatureObject.ReplyMessageSignature = "AD Signature"

objDoc.Saved = True
objWord.Quit

Если у вас есть вопросы, просто дайте мне знать!

Я давний клиент и фанат Почтовые утилиты Exclaimer.

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

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