Partager via


Acheminer les demandes de hiérarchie de dossier public

Toutes les demandes d’informations de dossier public qui nécessitent une connaissance de la hiérarchie des dossiers publics, telles que le déplacement, la mise à jour, la suppression ou la recherche de dossiers publics, doivent être routées vers la boîte aux lettres de hiérarchie de dossiers publics par défaut pour l’utilisateur donné. Pour acheminer les demandes vers cette boîte aux lettres, vous devez définir les en-têtes X-AnchorMailbox et X-PublicFolderMailbox sur des valeurs spécifiques retournées par le service de découverte automatique.

Vue d’ensemble des dossiers publics

En-tête De quoi ai-je besoin ? Comment faire l’obtenir ?
X-AnchorMailbox
Valeur PublicFolderInformation d’une réponse SOAP de découverte automatique GetUserSettings , qui devient la valeur de l’en-tête X-AnchorMailbox . 1. Envoyez une requête GetUserSetting avec l’adresse SMTP de la boîte aux lettres de l’utilisateur.

2. Utilisez l’élément PublicFolderInformation pour remplir la valeur de l’en-tête X-AnchorMailbox . La valeur de l’élément PublicFolderInformation est une adresse SMTP.
X-PublicFolderMailbox
Valeur InternalRpcClientServer d’une réponse SOAP de découverte automatique GetUserSettings , qui devient la valeur de l’en-tête X-PublicFolderMailbox . 1. Envoyez une requête GetUserSetting avec l’adresse SMTP de la boîte aux lettres de l’utilisateur.

2. Utilisez l’élément InternalRpcClientServer retourné par le service de découverte automatique pour remplir la valeur de l’en-tête X-PublicFolderMailbox . La valeur de l’élément X-PublicFolderMailbox est une adresse SMTP où la partie utilisateur de l’adresse est un GUID.

Une fois que vous avez déterminé les valeurs d’en-tête, incluez-les lorsque vous effectuez des demandes de hiérarchie de dossiers publics.

Les étapes décrites dans cet article sont spécifiques aux demandes de hiérarchie de dossiers publics. Pour déterminer si votre demande est une hiérarchie de dossiers publics ou une demande de contenu, consultez Routage des demandes de dossiers publics.

Déterminer les valeurs d’en-tête à l’aide de l’API managée EWS

Vous pouvez utiliser un seul appel à GetUserSettings à l’aide du code suivant, qui récupère les éléments InternalRpcClientServer et PublicFolderInformation . Incluez l’adresse SMTP de l’utilisateur de boîte aux lettres en tant que paramètre d’entrée.

GetUserSettingsResponse userResponse = GetUserSettings(adservice, "sonyaf@contoso.com", 3, UserSettingName.PublicFolderInformation, UserSettingName.InternalRpcClientServer);
Console.WriteLine("X-AnchorMailbox value for public folder hierarchy requests: {0}", userResponse.Settings[UserSettingName.PublicFolderInformation]);
Console.WriteLine("X-PublicFolderMailbox value for public folder hierarchy requests: {0}", userResponse.Settings[UserSettingName.InternalRpcClientServer]);

Après l’exécution du code, les informations suivantes s’affichent sur la console :

X-AnchorMailbox for public folder hierarchy requests: SharedPublicFolder@contoso.com
X-PublicFolderMailbox value for public folder hierarchy requests: 1ec2a236-ed93-4f88-b9c6-33e63fa4aa44@contoso.com

Maintenant que vous avez la valeur PublicFolderInformation , incluez-la comme valeur de l’en-tête X-AnchorMailbox dans toutes les demandes de hiérarchie de dossiers publics. La valeur InternalRpcClientServer est utilisée pour l’en-tête X-PublicFolderMailbox. Les deux en-têtes sont obligatoires.

X-AnchorMailbox: SharedPublicFolder@contoso.com
X-PublicFolderMailbox: 1ec2a236-ed93-4f88-b9c6-33e63fa4aa44@contoso.com

Déterminer les valeurs d’en-tête à l’aide de SOAP

L’exemple de code suivant montre comment récupérer les valeurs PublicFolderInformation et InternalRpcClientServer à l’aide de l’opération SOAP GetUserSettings . L’utilisateur de boîte aux lettres est spécifié dans l’élément Mailbox , et l’élément RequestedSettings limite la réponse aux valeurs PublicFolderInformation et InternalRpcClientServer .

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:a="http://schemas.microsoft.com/exchange/2010/Autodiscover"
               xmlns:wsa="http://www.w3.org/2005/08/addressing"
               xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
               xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <a:RequestedServerVersion>Exchange2016</a:RequestedServerVersion>
    <wsa:Action>http://schemas.microsoft.com/exchange/2010/Autodiscover/Autodiscover/GetUserSettings</wsa:Action>
    <wsa:To>https://autodiscover-s.outlook.com/autodiscover/autodiscover.svc</wsa:To>
  </soap:Header>
  <soap:Body>
    <a:GetUserSettingsRequestMessage xmlns:a="http://schemas.microsoft.com/exchange/2010/Autodiscover">
      <a:Request>
        <a:Users>
          <a:User>
            <a:Mailbox>sonyaf@contoso.com</a:Mailbox>
          </a:User>
        </a:Users>
        <a:RequestedSettings>
          <a:Setting>PublicFolderInformation</a:Setting>
          <a:Setting>InternalRpcClientServer</a:Setting>
        </a:RequestedSettings>
      </a:Request>
    </a:GetUserSettingsRequestMessage>
  </soap:Body>
</soap:Envelope>

La réponse inclut la valeur PublicFolderInformation .

<UserSetting i:type="StringSetting">
  <Name>InternalRpcClientServer</Name>
  <Value>1ec2a236-ed93-4f88-b9c6-33e63fa4aa44@contoso.com</Value>
</UserSetting>
<UserSetting i:type="StringSetting">
    <Name>PublicFolderInformation</Name>
    <Value>SharedPublicFolder@contoso.com</Value>
</UserSetting>

Maintenant que vous avez la valeur PublicFolderInformation , incluez-la comme valeur de l’en-tête X-AnchorMailbox dans toutes les demandes de hiérarchie de dossiers publics. Utilisez la valeur InternalRpcClientServer pour l’en-tête X-PublicFolderMailbox. Les deux en-têtes sont obligatoires.

X-AnchorMailbox: SharedPublicFolder@contoso.com
X-PublicFolderMailbox: 1ec2a236-ed93-4f88-b9c6-33e63fa4aa44@contoso.com

Pour plus d’informations sur le processus de découverte automatique, consultez Découverte automatique pour Exchange, Générer une liste de points de terminaison de découverte automatique et Obtenir des paramètres utilisateur à partir d’Exchange à l’aide de la découverte automatique.

Définir les valeurs des en-têtes X-AnchorMailbox et X-PublicFolderMailbox

À l’aide des valeurs de PublicFolderInformation et InternalRpcClientServer acquises dans Déterminer la valeur de l’en-tête X-AnchorMailbox à l’aide de l’API managée EWS ou Déterminer la valeur de l’en-tête X-AnchorMailbox à l’aide de SOAP, définissez les valeurs des en-têtes X-AnchorMailbox et X-PublicFolderMailbox dans votre demande de contenu de dossier public.

Par exemple, étant donné une adresse SMTP PublicFolderInformation de SharedPublicFolder@contoso.com et une valeur InternalRpcClientServer de 1ec2a236-ed93-4f88-b9c6-33e63fa4aa44@contoso.com, incluez les en-têtes suivants lors des appels aux méthodes ou opérations suivantes.

X-AnchorMailbox: SharedPublicFolder@contoso.com
X-PublicFolderMailbox: 1ec2a236-ed93-4f88-b9c6-33e63fa4aa44@contoso.com

Appels de dossiers publics qui nécessitent les en-têtes X-AnchorMailbox et X-PublicFolder

Méthodes d'API managée EWS Opérations EWS
Folder.FindFolders
Folder.Delete
Folder.Update
Folder.Move
CreateFolder
FindFolder
DeleteFolder
UpdateFolder
MoveFolder

Pour ajouter ces en-têtes à l’aide de l’API managée EWS, utilisez la méthode HttpHeaders.Add .

service.HttpHeaders.Add("X-AnchorMailbox", "SharedPublicFolder@contoso.com");
service.HttpHeaders.Add("X-PublicFolderMailbox", "1ec2a236-ed93-4f88-b9c6-33e63fa4aa44@contoso.com");

Par exemple, le code suivant montre une requête FindFolder avec les en-têtes X-AnchorMailbox et X-PublicFolderMailbox définis sur les valeurs récupérées dans les exemples de cet article.

POST https://outlook.office365.com/EWS/Exchange.asmx HTTP/1.1
Content-Type: text/xml; charset=utf-8
X-AnchorMailbox: SharedPublicFolder@contoso.com
X-PublicFolderMailbox: 1ec2a236-ed93-4f88-b9c6-33e63fa4aa44@contoso.com
Host: outlook.office365.com
Content-Length: 1174
Expect: 100-continue
Connection: Keep-Alive
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Header>
    <t:RequestServerVersion Version="Exchange2013_SP1" />
  </soap:Header>
  <soap:Body>
    <m:FindFolder Traversal="Shallow">
      <m:FolderShape>
        <t:BaseShape>AllProperties</t:BaseShape>
      </m:FolderShape>
      <m:IndexedPageFolderView MaxEntriesReturned="1" Offset="0" BasePoint="Beginning" />
      <m:Restriction>
        <t:IsEqualTo>
          <t:FieldURI FieldURI="folder:DisplayName" />
          <t:FieldURIOrConstant>
            <t:Constant Value="My Public Contacts" />
          </t:FieldURIOrConstant>
        </t:IsEqualTo>
      </m:Restriction>
      <m:ParentFolderIds>
        <t:FolderId Id="AQEuAAADy/LIWjRCp0GFb0W6aGPbwwEARg5aCLUc8k6wLfl1c0a/2AAAAwIAAAA=" ChangeKey="AQAAABYAAABGDloItRzyTrAt+XVzRr/YAABdo/XB" />
      </m:ParentFolderIds>
    </m:FindFolder>
  </soap:Body>
</soap:Envelope>

Voir aussi