![Active Directory フィールドを使用して Exchange 2003 で署名ポリシーを適用する](https://rvso.com/image/515653/Active%20Directory%20%E3%83%95%E3%82%A3%E3%83%BC%E3%83%AB%E3%83%89%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%20Exchange%202003%20%E3%81%A7%E7%BD%B2%E5%90%8D%E3%83%9D%E3%83%AA%E3%82%B7%E3%83%BC%E3%82%92%E9%81%A9%E7%94%A8%E3%81%99%E3%82%8B.png)
当社では、すべてのユーザーに対して、名前、役職、連絡先の詳細、オフィスの所在地に基づいて標準の署名ブロックを用意する必要があると判断しました。これらはすべて Active Directory に保存されています。
Active Directory フィールドに基づいて Outlook/Exchange 2003 署名を自動的に生成する優れたソリューションを見つけた人はいますか?
答え1
私は長年の顧客でありファンですExclaimer メールユーティリティ。
これは Exchange サーバー上に存在し、ステーショナリを適用するかどうかを決定するカスタマイズ可能なルールが多数あります。私は、外部に送信するすべての電子メールの上部に会社のロゴを追加し、下部に人の名前、役職、さまざまな電話番号を追加します。これらはすべて Active Directory から取得されます。
サポートは一度しか利用していませんが、非常にフレンドリーで知識が豊富で、問題を非常に迅速に解決してくれました。
答え2
私が書いたスクリプトは、非常にうまくいきました。さまざまな AD フィールドから非表示の Word 文書に書き込み、それを Outlook 2007 に既定および返信署名としてコピーします。
ログインごとに自動的に実行されることはやめました。ごくまれに、ユーザーがマシンに初めてログインしたときに、ウィザードを経由しないと Outlook が開かないという問題が発生することがあります。現時点では、ユーザーのデスクトップに「電子メール署名のリセット」というショートカットをプッシュする GPO です。これにより、ユーザーは毎回上書きされることなく、デフォルト以外の署名を持つこともできます。
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
ご質問がございましたら、お気軽にお問い合わせください。