RDODistListItem object

 

RDODistListItem object represents an "IPM.DistList" message in one of Outlook's contacts folders. RDODistListItem is derived from the RDOMail object and as such inherits all the properties, methods and events implemented by the RDOMail object and adds the following methods and properties

 

Everywhere RDOMail object is normally returned (RDOSession.GetMessageFromID, RDOFolder.Items, etc), RDODistListItem will be returned if the message class is "IPM.DistList".

 

The example below creates a new distribution list item in the default Contacts folder and adds a member to it.

set Session = CreateObject("Redemption.RDOSession")
Session.Logon
set Contacts = Session.GetDefaultFolder(olFolderContacts)
set DL = Contacts.Items.Add("IPM.DistList")
DL.DLName = "Redemption test"
DL.AddMember("test <test@dimastr.com>")
DL.Save

 

Properties

Methods

 


Derived from: RDOMail


Properties


CheckSum

integer, internal use only. CheckSum property represents the checksum unique to the given list of the DL members.

 

 

DLName

Returns or sets a String representing the display name of a distribution list. Read/write.

 

see the example at the top of this page

MemberCount

Returns an integer indicating the number of members in a distribution list. Read-only.

 

 

Members

Returns an RDOAddressEntries object representing the members of the distribution list.

Distribution lists store members in two collections: Members, which contains the original entry ids,  and OneOffMembers, which contains the one-off entry ids. One-off entry ids are self contained, i.e. they embed both the name and address of the address entry. If a member points to a contact that was deleted, it would be impossible to retrieve the member, while the one-off entry id will still be valid since it does not depend on any external MAPI objects.

GetMember method (see below) checks if the member entry id is still valid. If not, it returns an RDOAddressEntry object corresponding to the one-off entry id.

 

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Contacts = Session.GetDefaultFolder(olFolderContacts)
set DL = Contacts.Items("test dl")
for each Member in DL.Members
  Debug.Print Member.Name & ": " & Member.Address
next

OneOffMembers

Returns an RDOAddressEntries object representing the members of the distribution list.

See comment for the Members property above.

 


Methods


AddContact(ContactItem, AddressType)

Adds a Contact or a Distribution List as a member of the distribution list.

ContactItem - an object representing IPM.Contact or IPM.DistList message, such as RDOContactItem, RDODistList, RDOMail, Outlook.MailItem, etc object. The only requirement is that the object must expose a MAPIOBJECT property which returns an IMessage Extended MAPI object.
AddressType - one of the rdoAddressType enums that specify which contact address (Email1, Emal2, Fax1, etc) must be added.

This parameter is ignored if a Distribution List is being added.

 

rdoAddressType values:
atEmail1 = 0
atEmail2 = 1
atEmail3 = 2
atBusinessFax = 3
atHomeFax = 4
atOtherFax = 5

 

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Contacts = Session.GetDefaultFolder(olFolderContacts)

'retrieve an existing distribution list
set DL = Contacts.Items("test dl")

'retrieve an existing contact's Email3 address to the DL
set Contact = Contacts.Items("Dmitry Streblechenko")
'add the contact to the distribution list and save it
DL.AddContact(Contact, atEmail3)
DL.Save

AddMemberEx(Name, Address, AddressType)

Allows to add a one-off address to the distribution list

Name - string, the name of the member

Address- string, the address of the member

AddressType- string, the address type of the member, e.g. "SMTP"

 

DistListItem.AddMemberEx("Dmitry", "test@dimastr.com", "SMTP")

AddMember(RecipientOrAddressentryOrName)

Adds a given object as a member of the distribution list.

RecipientOrAddressentryOrName - RDORecipient, RDOAddressEntry or a string representing the new member. If the value is a string, it will be resolved to an address entry using the standard name resolution.

 

see the example at the top of this page

AddMembers(Recipients)

Adds all of the recipients to the distribution list.

Recipients - RDORecipients object, most often returned by the RDOMail.Recipients property

 

 
Clear
Removes all members from the distribution list.
 

GetMember(Index)

Returns an RDOAddressEntry object representing the member with the given index. This method checks if the member entry id is still valid and returns an entry from the Members collection. If not, it returns an RDOAddressEntry object corresponding to the one-off entry id from the OneOffMembers collection. See Members property help above.

Index - integer, 1 through MemberCount.

 

 

RemoveMember(Index)

Removes the distribution list member with the given index.

Index - integer, 1 through MemberCount.

 

 
RemoveMemberEx(RecipientsAddressEntriesAddresses)
Removes the distribution list member with the given index.

RecipientsAddressEntriesAddresses - can be either
integer (index 1 through Count)
string - ";" separated list of list of names/entry ids/addresses
array of strings - list of names/entry ids/addresses
object - either RDORecipient, RDOAddressEntry or RDOAddressEntries object.
 
UpdateMembers(DeleteIfNotFound, SearchIfNotFound, DisplayPrompts, ParentWindowHandle)
Updates the members of the distribution list and returns the number of modified members. If no members were modified, 0 is returned.
For the changed members, name and address is updated.
Deleted members will be deleted from the distribution list if the DeleteIfNotFound parameter is true.
If a member cannot be found, and SearchIfNotFound  parameter is true, UpdateMembers will search for a matching contact (based on the e-mail address) in the parent folder of the distribution list. If the DL comes from an MSG file, the search will be performed in the default Contacts folder.

DeleteIfNotFound - Variant, optional. If not specified, defaults to true.
If true, the members that cannot be opened will be deleted.

SearchIfNotFound - Variant, optional. If not specified, defaults to true.
If true and a member cannot be found,  UpdateMembers will search for a matching contact (based on the e-mail address) in the parent folder of the distribution list. If the DL comes from an MSG file, the search will be performed in the default Contacts folder.

DisplayPrompts - Variant, optional. If not specified, defaults to true.
If true, UpdateMembers will ask the user if the member should be removed:
Could not find contact "%s". It may have been deleted or moved from its original location. Would you like to remove it from the list?

ParentWindowHandle - Variant, optional. If not specified, defaults to the handle of the foreground window.
The handle of the window to be used as the parent for the prompt (see DisplayPrompts parameter). An HWND or an Outlook Explorer or Inspector object can be passed as a parameter.
'Open the currently selected distribution list and update its members
set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set DL = Session.GetMessageFromID(Application.ActiveExplorer.Selection(1).EntryID)
If DL.UpdateMembers(true, true, true, Application.ActiveExplorer) > 0 Then
   
DL.Save
End If