SMTP Display Name Utility

0 Likes

Many branches of the Government are becoming more and more concerned about being able to identify email users. While PKI and digital signatures are coming, the Army is already requiring that email Display Name fields identify the user as a Government employee or Contractor and what company they work for.


This is a problem for GWIA, since the Display Name is automatically created from your username or First and Last name fields. With this utility, you can recreate the Display Name field on all outbound messages from other users property values in eDirectory.


For example:


A user EShinseki with a given name of Eric and surname of Shinseki Would normally have a GroupWise Display Name of


"Eric Shinseki" <Eric.Shinseki@us.army.mil>


This Utility could change it to:


"GEN Eric Shinseki (Government/Army Chief of Staff)" <Eric.Shinseki@us.army.mil>


A Contractor might show up as:


"Mr. Fred McMullen (Contractor/CST Inc)" <Fred.McMullen@us.army.mil>


Or with the Last Name order switch applied it would show up as:


"McMullen, Mr. Fred (Contractor/CST Inc)" <Fred.McMullen@us.army.mil>


This utility is pure Java and runs in the GWIA SMTP Service Queues. It requires the eDirectory schema to be extended and anonymous LDAP Access to eDirectory.


SMTP Display Name Setup


Schema Extension:


This Utility requires the following LDAP attributes to work. Some of these are already in eDirectory and some will have to be added:
givenName
sn
mail


These attributes may have to be added.
company
isContractor
employeeClassification
personalTitle


To Extend the Schema, launch the Schema Manager under the Tools Menu in ConsoleOne.

Choose the Attributes TAB.


Create the following four attributes with the following properties. Be sure to use the exact spelling and case for the attribute Names.

company as Case Ignore String and Single Value, Synchronize Immediate and public read
isContractor as Boolean and Synchronize Immediate and public read
employeeClassification as Case Ignore String and Single Value, Synchronize Immediate and public read
personalTitle as Case Ignore String and Single Value, Synchronize Immediate and public read


If any of these attributes are already created, that's okay. It should still work.


Please make sure the above attributes are correct before continuing.


Now Click on the Classes TAB and find the User Class and click on the Info Button, Use the "Add Attribute" Button and add all the newly created attributes to the user class.


Installing the Software


Installing the software is the simplest part; simply unzip the SMTPDisplayName.zip on to the SYS Volume of your Netware server running GWIA. Then use ConsoleOne to create a SMTP Service Queue.


To create the SMTP Service Queue, launch ConsoleOne and right click on the GWIA object and choose properties. Now find the "Server Directory Settings" TAB and then find and click on the "Advanced" button. Create a new directory somewhere on your GWIA server. I typically use VOL:\Domain\SMTPQ.


Now setup your SMTPDisplayName Properties File in SYS:\JAVA\Applications directory.


Set LdapHostName to your LDAP Host server. I suggest setting up your GWIA server To be your LDAP server.


Set LdapSearchBase to the highest organization or organization unit that contains all your users


Set SMTPQueuesDirectory to the Directory that normally handles your GWIA mail. Typically it is VOL:\Domain\WpGate\GWIA


Set SMTPServiceQueuesDirectory to the new Service Queue directory that you created in the step above


Use SMTPDomainName 1, 2 and 3 to list the valid email domains that match users in your tree

Set OfficeTag to the default name for your Government Office


Set useOfficeTag4Gov either as True or False to use the Office Tag Value set above


Set useEDirEmployeeClass as True or False; When True employeeClassification value is used to construct the Display Name. If False the String "Government" or "Contractor" is Used


Set LastNameOrder as True or False to choose Display Name order


Set StatusInterval to the number of minutes between on screen status displays

Set DebugMode as True or False to display address conversions on the screen


Set ErrorLogDirectory to the directory you wish to write the error log to

How it works

You are all setup and ready to run. The Utility is really simple. Every outbound email is caught and filtered for the email header. If the email address's domain matches any domain listed in the properties file, it looks for the email address in the mail attribute of eDirectory. Once it finds the email user it uses the new attributes to build the new SMTP Display Name and add it back into the email. Then it passes it back to GWIA to mail.


The properties work as follows:


personalTitle is used for Ranks i.e. GEN, LTG, MG, BG, COL, LTC, MAJ, CPT, LT, etc
or for Dr. Mr. Mrs. Ms etc

employeeClassification is used for one of classifications like Military, Civilian, and Contractor


company is used for the company name or Army Office name.


isContractor is self-explanatory

Now use ConsoleOne and find the "Other" TAB on user object. Add the attributes above and fill in the correct values for that user. When I get around to writing a ConsoleOne snapin, I will add it to this package, but for now you simply use the Other TAB.


Operation


To run the Utility, setup your SMTP Services Queues in GWIA and Exit and Restart GWIA. Then type SMTPDisplayName at the Console to launch the Utility. Once running, the Utility pulls from eDirectory and caches the user attributes. Every 10 minutes, it refreshes the eDirectory and re-reads the properties file. You can push 'F6' at the console at any time to schedule an immediate refresh from the properties file and eDirectory. Use the 'F7' followed by the 'F1' key to gracefully exit the utility.

NOTE: When this utility is NOT running, no email is flowing in or out of GWIA.


Updates


3-5-03
Fixed Keyboard entry problem and null pointer exception on bad formatted 822 MIME messages


1-23-03
Minor bug fix

Labels:

How To-Best Practice
Comment List
Related
Recommended