3.2.5.1 Processing the X-MapiHttpCapability Header

If the Autodiscover request contains an X-MapiHttpCapability header (section 2.2.2.1), the server validates the value of the header. The value is considered valid if it is an integer value greater than zero (0) and if the server supports a version of the response format for the Protocol element (section 2.2.4.1.1.2.6) less than or equal to the value.

If the value of the X-MapiHttpCapability header is invalid, the server responds as if the X-MapiHttpCapability header was not present

If the value of the X-MapiHttpCapability header is valid, or if the server deduces the client’s MapiHttp capability based on the user agent header, the server SHOULD modify the Autodiscover response according to the following requirements.

  1. The server determines the highest version of the response format for the Protocol element that it supports that is less than or equal to the value of the X-MapiHttpCapability header in the Autodiscover response.

  2. The response MUST include a Protocol element that contains a Type attribute set to "mapiHttp" and a Version attribute, as specified in section 2.2.4.1.1.2.6, that corresponds to the highest version determined in step 1. The child elements of the Protocol element MUST conform to the version, as indicated in the table below.

  3. The response MUST NOT include a Protocol element that contains a Type element (section 2.2.4.1.1.2.6.46) set to "EXCH" or "EXPR".

The possible versions for the response format are specified in the following table.

Version

Response Format

Notes

1

<MailStore> 

  <InternalUrl>...</InternalUrl>

  <ExternalUrl>...</ExternalUrl>

</MailStore>

<AddressBook>

  <InternalUrl>...</InternalUrl>

  <ExternalUrl>...</ExternalUrl>

</AddressBook>

For both the MailStore element (section 2.2.4.1.1.2.6.29) and the AddressBook element (section 2.2.4.1.1.2.6.3), there MUST be at least one child element.

If the Autodiscover request contains an X-MapiHttpCapability header, the X-AnchorMailbox header (section 2.2.2.2) SHOULD also be sent. If this header is not sent, the server does not fail but the response can reflect an incorrect state of accessing the mailbox.