Populate group Internet addresses

Do you have a lot of groups in your NAB? Do you have users who would like to send Internet mail to these groups from outside your Notes Domain? We did but had a slight problem. We had group names with spaces, which does not work well with Internet Mail. Also, we had thousands of groups and to manually populate the R5 Internet Address Field for all of our groups would take forever. So, I wrote some code that would handle it for us. The code is not very difficult really, just very monotonous. Here is what the code will do:

1. Look at the group document and get the name of the group.
2. Try to create an Internet Address for the group using the name.
3. If the name contains spaces then it will use an Internet standard for the naming convention.
4. The code can handle a group name with up to 6 spaces in it.
5. The naming convention for the Internet address is as follows:

No spaces
Group Name: SteveHolman
Internet Address: SteveHolman@domain.com

1 Space
Group Name: Steve Holman
Internet Address: Steve.Holman@domain.com

2 Spaces
Group Name: Steve Ray Holman
Internet Address: Steve_Ray.Holman@domain.com

3 spaces
Group Name: Steve Ray Holman Jr
Internet Address: Steve_Ray_Holman.Jr@domain.com

etc. Basically the last word will have a "." dot in front of it and any preceding spaces will be replaced by "_" underscores. This allows for a SMTP RFC Standard Internet mail address.

Code modifications you will need to make:

1. Change the domain variable in the code to equal your domain name in the format "@domain.com"
2. Change the line that reads Set db = session.GetDatabase("DOMHUB1","names.nsf") to have your server name rather than "DOMHUB1".
3. The agent is set to run manually from the agent list, you can set it to run scheduled but will need to change the same line from "DOMHUB1" to "".
4. We put the agent in the NAB itself, but you can put it anywhere on the server.


Steve Holman
Wachovia Bank, NA

'Program Name: PopulateGroupInternetAddresses
'Date: 09/17/2001
'Coded By: Steve Holman
'File Name: appsopsmassmail.nsf
'Program Description: This code will set all groups in the NAB with a valid Internet Address.
'Development Environment: R5 Designer


Sub Initialize
	Dim session As New NotesSession
	Dim db As NotesDatabase
	Dim view As NotesView
	Dim doc As NotesDocument
	Dim item As NotesItem
	Dim grpname As NotesItem
	Dim itemtext As String
	Dim grpnametext As String
	Dim substring As String
	Dim substring2 As String
	Dim substring3 As String
	Dim substring4 As String
	Dim substring5 As String
	Dim substring6 As String
	Dim fname As String
	Dim mi As String
	Dim mi2 As String
	Dim mi3 As String
	Dim mi4 As String
	Dim mi5 As String
	Dim domain As String
	Dim pos As Integer
	Dim length As Integer
	Dim pos2 As Integer
	Dim pos3 As Integer
	Dim pos4 As Integer
	Dim pos5 As Integer
	Dim pos6 As Integer
	Dim pos7 As Integer
	Dim pos8 As Integer
	Dim pos9 As Integer
	Dim pos10 As Integer
	Dim pos11 As Integer
	Dim pos12 As Integer
	Dim length2 As Integer
	Dim length3 As Integer
	Dim length4 As Integer
	Dim length5 As Integer
	Dim length6 As Integer
	domain = "@wachovia.com"
	Set db = session.GetDatabase("DOMHUB1","names.nsf")
	Set view = db.GetView("Groups")
	Set doc = view.GetFirstDocument
	Do While Not(doc Is Nothing)
		Set item = doc.GetFirstItem("InternetAddress")
		If Not(item Is Nothing) Then
			itemtext = item.Text
		End If
		If itemtext = "" Then
			Set grpname = doc.GetFirstItem("ListName")
			grpnametext = grpname.Text
			length = Len(grpnametext)
			pos = Instr(1,grpnametext," ")
			If pos = 0 Then
				Set item = doc.ReplaceItemValue("InternetAddress", grpnametext + domain)
				pos2 = length - pos
				substring = Right(grpnametext,pos2)
				fname = Left(grpnametext, pos -1)
				pos3 = Instr(1,substring," ")
				If pos3 = 0 Then
					Set item = doc.ReplaceItemValue("InternetAddress", 
fname + "." + substring + domain) Else length2 = Len(substring) pos4 = length2 - pos3 substring2 = Right(substring, pos4) mi = Left(substring, pos3 -1) pos5 = Instr(1,substring2," ") If pos5 = 0 Then Set item = doc.ReplaceItemValue("InternetAddress",
fname + "_" + mi + "." + substring2 + domain) Else length3 = Len(substring2) pos6 = length3 - pos5 substring3 = Right(substring2, pos6) mi2 = Left(substring2, pos5 -1) pos7 = Instr(1,substring3, " ") If pos7 = 0 Then Set item = doc.ReplaceItemValue("InternetAddress",
fname + "_" + mi + "_" + mi2 + "." +
substring3 + domain) Else length4 = Len(substring3) pos8 = length4 - pos7 substring4 = Right(substring3, pos8) mi3 = Left(substring3, pos7 -1) pos9 = Instr(1,substring4," ") If pos9 = 0 Then Set item = doc.ReplaceItemValue("InternetAddress",
fname + "_" + mi + "_" + mi2 + "_" + mi3 + "." +
substring4 + domain) Else length5 = Len(substring4) pos10 = length5 - pos9 substring5 = Right(substring4, pos10) mi4 = Left(substring4, pos9 - 1) pos11 = Instr(1,substring5," ") If pos11 = 0 Then Set item = doc.ReplaceItemValue("InternetAddress",
fname + "_" + mi + "_" + mi2 + "_" + mi3 + "_" +
mi4 + "." + substring5 + domain) Else length6 = Len(substring5) pos12 = length6 - pos11 substring6 = Right(substring5, pos12) mi5 = Left(substring5, pos11 - 1) Set item = doc.ReplaceItemValue("InternetAddress",
fname + "_" + mi + "_" + mi2 + "_" + mi3 + "_" + mi4 + "_" +
mi5 + "." + substring6 + domain) End If End If End If End If End If End If End If pos = 0 pos2 = 0 pos3 = 0 pos4 = 0 pos5 = 0 pos6 = 0 pos7 = 0 pos8 = 0 pos9 = 0 pos10 = 0 pos11 = 0 pos12 = 0 length = 0 length2 = 0 length3 = 0 length4 = 0 length5 = 0 length6 = 0 itemtext = "" Call doc.Save(True,True) Set doc = view.GetNextDocument(doc) Loop End Sub

This was first published in October 2001

There are Comments. Add yours.

TIP: Want to include a code block in your comment? Use <pre> or <code> tags around the desired text. Ex: <code>insert code</code>

REGISTER or login:

Forgot Password?
By submitting you agree to receive email from TechTarget and its partners. If you reside outside of the United States, you consent to having your personal data transferred to and processed in the United States. Privacy
Sort by: OldestNewest

Forgot Password?

No problem! Submit your e-mail address below. We'll send you an email containing your password.

Your password has been sent to:

Disclaimer: Our Tips Exchange is a forum for you to share technical advice and expertise with your peers and to learn from other enterprise IT professionals. TechTarget provides the infrastructure to facilitate this sharing of information. However, we cannot guarantee the accuracy or validity of the material submitted. You agree that your use of the Ask The Expert services and your reliance on any questions, answers, information or other materials received through this Web site is at your own risk.