В одном почтовом ящике с общей папкой у меня есть две папки с поддержкой почты.Поиск общей папки для определенного почтового адреса
- Папка 1 имеет адрес электронной почты [email protected]
- Папка 2 имеет адрес электронной почты [email protected]
Теперь при выборе всех записей Active Directory для глобального списка адресов, есть некоторые записи :
- DISPLAYNAME "Папка 1", почта "[email protected]"
- DISPLAYNAME "Папка 2", почта "[email protected]"
- DISPLAYNAME "Пользователь 1", почта "[email protected]"
- ...
- DISPLAYNAME "User 100", почта "[email protected]"
Итак, я, естественно, вызовет автообнаружение EWS для этих адресов электронной почты. Это отлично подходит для всех пользователей, но не для общих папок - в нем говорится, что он не может найти почтовый ящик для этого адреса электронной почты. Поэтому я получил из Active Directory адрес электронной почты почтового ящика и подключился к нему.
Но как я могу теперь перейти в соответствующую папку? Я пробовал:
FolderView view = new FolderView(1);
view.Traversal = FolderTraversal.Shallow;
var folders = ews.FindFolders(
WellKnownFolderName.Root,
new SearchFilter.IsEqualTo(
FolderSchema.DisplayName, // <- how can I search by the folder's email address?
displayName
), view);
Это проливает следующее, действительно полезно сообщение об ошибке:
Internal Server Error. The operation failed.
Для полноты картины, создается следующий EWS XML:
<Trace Tag="EwsRequest" Tid="121" Time="2016-03-23 13:31:41Z" Version="15.00.0913.015">
<?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" />
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:SmtpAddress>[email protected]</t:SmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</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="Test Public Folder Mailbox" />
</t:FieldURIOrConstant>
</t:IsEqualTo>
</m:Restriction>
<m:ParentFolderIds>
<t:DistinguishedFolderId Id="root" />
</m:ParentFolderIds>
</m:FindFolder>
</soap:Body>
</soap:Envelope>
</Trace>
и следующий ответ от сервера:
<Trace Tag="EwsResponse" Tid="121" Time="2016-03-23 13:31:41Z" Version="15.00.0913.015">
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<s:Fault>
<faultcode xmlns:a="http://schemas.microsoft.com/exchange/services/2006/types">a:ErrorInternalServerError</faultcode>
<faultstring xml:lang="de-DE">Interner Serverfehler. Fehler bei diesem Vorgang.</faultstring>
<detail>
<e:ResponseCode xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">ErrorInternalServerError</e:ResponseCode>
<e:Message xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">Interner Serverfehler. Fehler bei diesem Vorgang.</e:Message>
</detail>
</s:Fault>
</s:Body>
</s:Envelope>
</Trace>
Что может вызвать эта проблема или где я могу найти дополнительную информацию о том, почему эта проблема возникает?
Выработать: Я нашел '' HexEntryId' от Get-MailPublicFolder' является то же, что и 'msExchPublicFolderEntryId' из LDAP/AD, поэтому я могу даже получить их без установки PowerShell. 'ConvertId' возвращает то, что похоже на' UniqueId' (хотя в конце он не имеет '='). Но когда я пытаюсь связать папку, сообщение об ошибке «Недопустимый идентификатор». – Alexander