RDORecipient object


RDORecipient object represents a message recipient.


Returned by:

RDORecipients.Item, Add, AddEx


The example below connects to the MAPI session used by Outlook, retrieves a message using the entry id of a give Outlook Object Model message, and prints out all the recipient names.

set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Mail = Session.GetMessageFromID(MailItem.EntryID)
for each Recip in Mail.Recipients
  debug.print Recip.Name


Derived from: IDispatch



string, read-write. The display name of the recipient




string, read-write. The address of the recipient




RDOSession, read-only. Returns the parent MAPI session represented by the RDOSession object




Returns the parent RDOMail object




RDOAddressEntry, read-only. Returns the address entry corresponding to the resolved recipient. If the recipient is not resolved (EntryID property is an empty string), this property returns NULL.




Integer, read-only. Returns an constant that describes the nature of the recipient.
Corresponds to the PR_DISPLAY_TYPE Extended MAPI proprty.




String, read-only. Returns the hex representation of the recipient's entry id (PR_ENTRYID). Returns an empty string if the recipient is not resolved.




Integer, read-only. Returns the index of the recipient in the parent RDORecipients collection.




Boolean, read-only. Returns true if the recipient is resolved (i.e. it entry id is present).




Integer, read-write. The recipient type - olTo (1), olCC (2), olBCC (3). Corresponds to the PR_RECIPIENT_TYPE Extended MAPI property.




Variant, read-write. Allows access to the recipient's properties. Note that RDORecipient.Fields() is different from RDORecipient..AddressEntry.Fields(); it provides access to the message's recipients table.

PropTag - either a DASL property name or an in integer Extended MAPI property tag. CDO named property format (see CDOLive) is also supported.

E.g. to read the PR_EMAIL_ADDRESS property, one can use the following values of the PropTag parameter:

0x3003001E (integer)




set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Mail = Session.GetMessageFromID(MailItem.EntryID)
for each Recip in Mail.Recipients

  'access the display name using the integer property tag
  debug.print Recip.Fields(PR_EMAIL_ADDRESS)

  'or using the DASL property name

  debug.print Recip.Fields("http://schemas.microsoft.com/mapi/proptag/0x3003001E")


Returns or sets a String representing the text of an automatic response for a Recipient. Read/write.




Returns an OlResponseStatus constant indicating the overall status of the response to the meeting request for the recipient. Read-only.

OlResponseStatus can be one of these OlResponseStatus constants.
olResponseAccepted (3)
olResponseDeclined (4)
olResponseNone (0)
olResponseNotResponded (5)
olResponseOrganized (1)
olResponseTentative (2)




Returns or sets an OlTrackingStatus constant indicating the tracking status for the recipient. Read/write.

OlTrackingStatus can be one of these OlTrackingStatus constants.
olTrackingDelivered (1)
olTrackingNone (0)
olTrackingNotDelivered (2)
olTrackingNotRead (3)
olTrackingRead (6)
olTrackingRecallFailure (4)
olTrackingRecallSuccess (5)
olTrackingReplied (7)




Returns or sets a Date indicating the tracking status date and time for the recipient. Read/write




Boolean, read/write. Determines whether the message recipient will receive the message in the RTF (TNEF, winmail.dat) format. Sets/retrieves PR_SEND_RICH_INFO property for the receipient and the MAPI_ONE_OFF_NO_RICH_INFO flag in the one-off entry id.


When setting this property, make sure the recipient is resolved (call Resolve or add the recipient using RDORecipients.AddEx) to make sure the entry id is available, so that Redemption can set the MAPI_ONE_OFF_NO_RICH_INFO flag.


Sending in the TNEF format is used when a message has custom MAPI properties or a custom message class that need to be preserved when an SMTP recipient receives the message.

set Session = CreateObject("Redemption.RDOSession")
set Drafts = Session.GetDefaultFolder(olFolderOutbox)
set Msg = Drafts.Items.Add("IPM.Note.SomeCustomForm")
set Recip = Msg.Recipients.Add("dmitry@dimastr.com")
Recip.SendRichInfo = true
Msg.Subject = "true"
Msg.Body = "Test body"
'The following named property along with the
'custom message class (see above) will be preserved
'when the message is received since we are sending in the TNEF format

Msg.Fields("http://schemas.microsoft.com/mapi/id/{00062008-0000-0000-C000-000000000046}/85180003") = 1




Removes the recipient from the parent message recipients collection. the RDORecipient object becomes invalid.



ExpandDL(Recursive, PrivateDLOnly)
Replaces Distribution List list with the members of that list.
If the recipient is not a distribution list, False is returned an no changes are made.
After the DL is successfully expended, the RDORecipient object now points to the last recipient added to the recipient list as the result of the expansion.

You can expand the Distribution Lists recursively and limit the expansion to only Private Distribution Lists - MAPIPDL Distribution Lists can only be accessed locally since they do not have  an externally meaningful address and only exist in the context of the store that contain the corresponding RDODistListItem object).
If the call is successful (that is, the recipient was a distribution list and it was successfully expanded), returns true and false otherwise.

Recursive - variant, optional. If true, expands the distribution lists recursively.
If not specified, defaults to True.

PrivateDLOnly - variant, optional. If true, only expands MAPIPDL Distribution Lists that exist on top of the RDODistListItem objects in the local store.
FreeBusy(Start, MinPerChar, CompleteFormat)

Returns a string representing the availability of the individual user for a period of 30 days from the start date.

Start- Required Date. Specifies the date.

MinPerChar - Required integer. Specifies the length of each time slot in minutes. Default is 30 minutes.

CompleteFormat - Optional Variant


set Session = CreateObject("Redemption.RDOSession")
Session.MAPIOBJECT = Application.Session.MAPIOBJECT
set Mail = Session.GetMessageFromID(MailItem.EntryID)
for each Recip in Mail.Recipients
  debug.print Recip.FreeBusy(#06/01/2005#, 30, true)

Resolve(ShowDialog, ParentWndHandle)

Attempts to resolve a Recipient object against the Address Book. Returns True if the object was resolved, False if it was not.

ShowDialog - boolean, optional. If true, and the name resolution fails, the method will display the standard name resolution dialog.

ParentWndHandle - integer, optional. If ShowDialog is true, the window handle of the window to be used as the name resolution dialog parent. If not specified, the current foreground window will be used as the parent.