Outlook Profiles: Automating Mail Signature Assignments Using Active Directory Info. Part I
March 30, 2007
The steps to create mail signature in Outlook manually are not so complex to perform. But as it usually happens, this ‘rule’ cannot be applied to all cases. Once you can burden this task on user’s shoulders in a small company with a few computers in net and probably no Active Directory, go do it in large company. Even in relatively large company it’s nearly impossible to force users to go beyond corporate rules on formatting the signature. At any time in any place chances are very high we will get the chaos within the settings of users’ signatures. Ones just will be unable to create them at all, others will leave your direction and not set signature at all, while the rest will edit the standardized formatting to what they like to look like and… You will get the chaos. Imagine you will start labeling your corporate logo differently each time you put it somewhere. John will put it that like, Marianne will add some flowers at the very left conner of the logo because she is delighted with the Spring that came earlier (later?) this year. Absurd? For sure. Logo is that kind of things that usually changes only by common agreement and cannot change and depend on the each single person wish. Surely, you can create legal notices, you can stick banners screaming on users and forcing them to comply the rules. But the question is: should you do that? Or to say it better: should THEY do it? At least they were employed to do what they are specializing in and what they can do best, so why bothering them with excess problems and drawing them away from their internal responsibilities. While there are things that people should be able to freely made themselves, there are things at the same time that must be standardized. Just for the sake of following corporate rules, for the sake of what any standards are created for.
First Steps to Automate Creation of Outlook Signature
Here I will go through the process describing the process of how to create e-mail signature for Outlook using automation in the step-by-step manner.
The first thing you start thinking about automation is probably scripting. And because we want to add text here, we need to use Microsoft Office Word. Moreover, Outlook object model as it seemingly seems does not include methods that would allow to create and assign signatures for e-mail messages.
First of all we need to open our application. Because we will use Word here, we need to start Word application.
Set objWord = CreateObject(“Word.Application”)
We are creating objWord object to do that. If we want our application to be visible as we start it allowing the user to see the main application window, we need to set object property accordingly. Thus we can set Visible property of objWord instance to true.
‘objWord.Visible = True
Uncomment the string in the script and you’ll see the window displayed without any document opened in it. Comment it back on and you’ll see only the process instance displayed within the list of your task manager. But aren’t we here to create the signature? To create it we need to create a document that we will fill in further with signature info. To create a new document we need to use Add method and create a objDoc object which will designate the document we are creating:
Set objDoc = objWord.Documents.Add()
Alright. We created the document. Let’s start righting the text. We need some method that will do the job for us. Something like TypeText would be able to do that job for us. But the objWord object doesn’t have such a method contained within its object model. What should we do? Right what we do when we start typing out document. We should put an insertion point within it. What cannot be done with one object can be done with another one. The first thing that Scripting Guys are suggesting to use to type e-mail signature in live is to create Word’s Selection object. Here’s how we do that:
Set objSelection = objWord.Selection
Now we can start writing our first string of text to build the signature. We need to invoke the mentioned TypeText method here:
objDoc.TypeText “FirstName LastName”
Where the FirstName and the LastName strings are placeholders for the text that will be typed in the document. Thus if you will put John Doe here, and run the TypeText method you will see the John Doe string written in the first row of the Microsoft Word document. Now then we usually type the company name under the personal name. Okay, let’s write the name of the company. Let it be the mysterious ACME Corporation:
objDoc.TypeText “FirstName LastName”
But wait, why we got out strings sticked one to each other? That’s because we forgot to do out second action we do when we type the documents, breaking the line and inserting line feed and caret return to it. That is we need to put here our well-known “Press ENTER to continue”. What’s Enter in Word? It is paragraph. Strictly speaking paragraph is more complex thing in Word because it holds style and formatting info, but let cut its capabilities to such a limited scope. To put the paragraph we should add this
line to the code.
You can find the whole article here
Extra info on scripts utilizing XML and HTA can be found here
Script Automation: Automatic Genereation of E-mail Signatures on User Side Without User Intervention
How to find and use Office object model documentation
Programming the Outlook object model
Technorati tags: ADSI scripting corporate signature object model outlook object model word object model personal signature mail signature scripting active directory Microsoft Office outlook profiles VBScript outlook signature generate signature