AddDelegate operation
The AddDelegate operation adds one or more delegates to a principal's mailbox and sets specific access permissions.
SOAP headers
The AddDelegate operation can use the SOAP headers that are listed and described in the following table.
Header | Element | Description |
---|---|---|
Impersonation |
ExchangeImpersonation |
Identifies the user whom the client application is impersonating. |
MailboxCulture |
MailboxCulture |
Identifies the RFC3066 culture to be used to access the mailbox. |
RequestVersion |
RequestServerVersion |
Identifies the schema version for the operation request. |
ServerVersion |
ServerVersionInfo |
Identifies the version of the server that responded to the request. |
AddDelegate request example
Description
The following example of an AddDelegate request shows an attempt to give user1 delegate permissions on folders that are owned by user2. User1 is given Author-level permissions to user2's Calendar folder and Reviewer-level permissions to user2's Contacts folder. User1 will not receive copies of meeting messages and will be unable to view private items in user2's mailbox. Meeting requests will be sent to both user1 and user2.
Code
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<t:RequestServerVersion Version="Exchange2007_SP1"/>
</soap:Header>
<soap:Body xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<AddDelegate>
<Mailbox>
<t:EmailAddress>[email protected]</t:EmailAddress>
</Mailbox>
<DelegateUsers>
<t:DelegateUser>
<t:UserId>
<t:PrimarySmtpAddress>[email protected]</t:PrimarySmtpAddress>
</t:UserId>
<t:DelegatePermissions>
<t:CalendarFolderPermissionLevel>Author</t:CalendarFolderPermissionLevel>
<t:ContactsFolderPermissionLevel>Reviewer</t:ContactsFolderPermissionLevel>
</t:DelegatePermissions>
<t:ReceiveCopiesOfMeetingMessages>false</t:ReceiveCopiesOfMeetingMessages>
<t:ViewPrivateItems>false</t:ViewPrivateItems>
</t:DelegateUser>
</DelegateUsers>
<DeliverMeetingRequests>DelegatesAndMe</DeliverMeetingRequests>
</AddDelegate>
</soap:Body>
</soap:Envelope>
AddDelegate response example
Description
The following example of an AddDelegate response shows a successful response to an AddDelegate request.
Code
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8"
MinorVersion="1"
MajorBuildNumber="206"
MinorBuildNumber="0"
Version="Exchange2007_SP1"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<m:AddDelegateResponse xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
ResponseClass="Success"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseCode>NoError</m:ResponseCode>
<m:ResponseMessages>
<m:DelegateUserResponseMessageType ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:DelegateUser>
<t:UserId>
<t:SID>S-1-5-21-1333220396-2200287332-232816053-1116</t:SID>
<t:PrimarySmtpAddress>[email protected]</t:PrimarySmtpAddress>
<t:DisplayName>User1</t:DisplayName>
</t:UserId>
<t:ReceiveCopiesOfMeetingMessages>false</t:ReceiveCopiesOfMeetingMessages>
<t:ViewPrivateItems>false</t:ViewPrivateItems>
</m:DelegateUser>
</m:DelegateUserResponseMessageType>
</m:ResponseMessages>
</m:AddDelegateResponse>
</soap:Body>
</soap:Envelope>
AddDelegate error response example
Description
The following example shows the response to a request to add a delegate who has already been added to the principal's mailbox.
Code
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<t:ServerVersionInfo MajorVersion="8"
MinorVersion="1"
MajorBuildNumber="206"
MinorBuildNumber="0"
Version="Exchange2007_SP1"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" />
</soap:Header>
<soap:Body>
<m:AddDelegateResponse xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types"
ResponseClass="Success"
xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<m:ResponseCode>NoError</m:ResponseCode>
<m:ResponseMessages>
<m:DelegateUserResponseMessageType ResponseClass="Error">
<m:MessageText>The user is already a delegate for the mailbox.</m:MessageText>
<m:ResponseCode>ErrorDelegateAlreadyExists</m:ResponseCode>
<m:DescriptiveLinkKey>0</m:DescriptiveLinkKey>
</m:DelegateUserResponseMessageType>
</m:ResponseMessages>
</m:AddDelegateResponse>
</soap:Body>
</soap:Envelope>
Comments
If the ErrorDelegateAlreadyExists response code is returned when you try to add a delegate, use the GetDelegate operation to get all the current permissions for the delegate, and then use the UpdateDelegate operation to set the new permissions.