Change Domino Organisation Name

Hi,

We are in a process of changing Domino Organisation name, I have been following a procedure from this Technote http://www-01.ibm.com/support/docview.wss?uid=swg21088125 http://www-01.ibm.com/support/docview.wss?uid=swg21088125

Users used to be called, ‘John Doe/LA/CompanyA’ new called ‘John Doe/LA/CompanyB’. All access works just fine, my question is, when the user send email, it comes up as ‘John Doe/LA/CompanyB@CompanyA’.

Where is the ‘@CompanyA’ come from? is this the Domain name of the server? if yes, is it possible to change the domain name without have to re-create/re-certify the server?

Subject: Change Domino Organisation Name

Thanks Barry

Subject: Answer

I take it you want to also change the mail domain.

Location doc

Person doc (public and local nab)

Server Doc

Connection doc

All needs to be updated with the new maildomain info.

Don’t you also want to change the internet name with the new name as well? IF so I would add the old internet name in the fullname Field so outside user will still be able to communicate with these users. They can removed later on

For location and local person doc I suggest mailing all users a button to change all oldmaildomain to newmaildomain

All this really needs to be done at one time. If someone does a reply or does not click the button to cleanup contacts you can add the non adjacent domain doc that will collect the emails to the old domain. You then can write a scheduled agent that will change all references of olddomain to newdomain in the to/from/cc/bcc/recipients field and then compose a new message in the mailbox to send off the email.

Subject: Renaming the domain

It’s a pain, and there aren’t any built-in tools to do it. We (IBM) tend not to even try and just continue using older domain names, but a lot of organizations like consistency in the naming. I wrote this agent many years ago that updates some of the information needed to rename your domain. It’s probably not complete, but it can be used as a starting point.

Option Public

Public Const OLDDOMAIN = “GQ”
Public Const NEWDOMAIN = “HQ”
Public Const SERVER = “Dom1/Acme”
Public Const MAILDIRECTORY = “mail”

Dim s As NotesSession
Dim db As NotesDatabase
Dim dc As NotesDocumentCollection
Dim doc As NotesDocument
Dim formField As NotesItem
Sub Initialize

Set s = New NotesSession

Call ProcessNAB
Call ProcessDirectoryProfile
Call IterateMailfiles

End Sub

Sub ProcessDomainField(strField As String)

Dim domainField As NotesItem

Set domainField = doc.GetFirstItem(strField)
If Not domainField Is Nothing Then
If domainField.Text = OLDDOMAIN Then
Set domainField = doc.ReplaceItemValue(strField, NEWDOMAIN)
Call doc.Save(False, True)
End If
End If

End Sub
Sub ProcessDirectoryProfile

Dim profileDoc As NotesDocument
Dim domain As NotesItem

Set db = s.GetDatabase(SERVER, “names.nsf”)
Set profileDoc = db.GetProfileDocument(“DirectoryProfile”)
Set domain = profileDoc.GetFirstItem(“Domain”)
Set domain = profileDoc.ReplaceItemValue(“Domain”, NEWDOMAIN)
Call profileDoc.Sign()
Call profileDoc.Save(True, True)

End Sub
Sub ProcessMailfile(db As NotesDatabase)

Dim field As NotesItem

Call db.open(“”,“”)
Set dc = db.AllDocuments
Set doc = dc.GetFirstDocument

While Not doc Is Nothing
Set formField = doc.GetFirstItem(“Form”)
If Not formField Is Nothing Then
If formField.Text = “Appointment” Then
Set field = doc.GetFirstItem(“Room”)
If Not field Is Nothing Then
Call ProcessTextList(“Room”, field)
End If
Set field = doc.GetFirstItem(“AltFYNames”)
If Not field Is Nothing Then
Call ProcessTextList(“AltFYNames”, field)
End If
Set field = doc.GetFirstItem(“AltOptionalNames”)
If Not field Is Nothing Then
Call ProcessTextList(“AltOptionalNames”, field)
End If
Set field = doc.GetFirstItem(“AltRequiredNames”)
If Not field Is Nothing Then
Call ProcessTextList(“AltRequiredNames”, field)
End If
Set field = doc.GetFirstItem(“INetOptional”)
If Not field Is Nothing Then
Call ProcessTextList(“INetOptional”, field)
End If
Set field = doc.GetFirstItem(“INetRequiredNames”)
If Not field Is Nothing Then
Call ProcessTextList(“INetRequiredNames”, field)
End If
Set field = doc.GetFirstItem(“FYIAttendees”)
If Not field Is Nothing Then
Call ProcessTextList(“FYIAttendees”, field)
End If
Set field = doc.GetFirstItem(“OptionalAttendees”)
If Not field Is Nothing Then
Call ProcessTextList(“OptionalAttendees”, field)
End If
Set field = doc.GetFirstItem(“Recipients”)
If Not field Is Nothing Then
Call ProcessTextList(“Recipients”, field)
End If
Set field = doc.GetFirstItem(“RequiredAttendees”)
If Not field Is Nothing Then
Call ProcessTextList(“RequiredAttendees”, field)
End If
Set field = doc.GetFirstItem(“RequiredResources”)
If Not field Is Nothing Then
Call ProcessTextList(“RequiredResources”, field)
End If
End If
End If
Call doc.Save(False, True)
Set doc = dc.GetNextDocument(doc)
Wend

End Sub

Sub ProcessNAB

Set db = s.GetDatabase(SERVER, “names.nsf”)
Set dc = db.AllDocuments
Set doc = dc.GetFirstDocument

While Not doc Is Nothing
Set formField = doc.GetFirstItem(“Form”)
If Not formField Is Nothing Then
Select Case formField.Text
Case “Person” :
Call ProcessDomainField(“MailDomain”)
Case “Database” :
Call ProcessDomainField(“MailDomain”)
Case “Group” :
Call ProcessDomainField(“MailDomain”)
Case “local” :
Call ProcessDomainField(“SourceDomain”)
Call ProcessDomainField(“DestinationDomain”)
Case “Server” :
Call ProcessDomainField(“Domain”)
End Select
End If
Set doc = dc.GetNextDocument(doc)
Wend

End Sub
Sub ProcessTextList(fieldName As String, item As NotesItem)

Dim v1 As Variant
Dim v2 As Variant
Dim temp As String
Dim docItems As Variant

itemValues = item.Values

Forall itemValue In itemValues
v1 = Strleft(itemValue, “@”)
v2 = Strright(itemValue, “@”)
If v2 = OLDDOMAIN Then
v2 = NEWDOMAIN
End If
itemValue = v1 + “@” + v2
End Forall

item.Values = itemValues

End Sub
Sub IterateMailfiles

Dim dbdir As NotesDbDirectory
Dim position As Integer

Set dbdir = New NotesDbDirectory(SERVER)
Set db = dbdir.GetFirstDatabase(DATABASE)

While Not db Is Nothing
If Instr(1, db.FilePath, MAILDIRECTORY, 5) Then
Call ProcessMailfile(db)
End If
Set db = dbdir.GetNextDatabase
Wend

End Sub