Почему EWS api ErrorNonPrimarySmtpAddress ошибка? - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть несколько учетных записей в клиенте Office 365.Два из них практически идентичны (имеют похожие настройки, но разные контактные данные и имя).Я пытаюсь получить информацию (такую ​​как все папки и элементы) в почтовом ящике пользователя, используя операцию GetFolder из API EWS, которая содержит следующее тело:

<?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="Exchange2013"/>
    <t:ExchangeImpersonation>
      <t:ConnectingSID>
        <t:PrimarySmtpAddress>Name.Surname@mydomain.onmicrosoft.com</t:PrimarySmtpAddress>
      </t:ConnectingSID>
    </t:ExchangeImpersonation>
  </soap:Header>
  <soap:Body>
    <GetFolder xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
         xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
      <FolderShape>
        <t:BaseShape>AllProperties</t:BaseShape>
        <t:AdditionalProperties> </t:AdditionalProperties>
      </FolderShape>
      <FolderIds>
        <t:DistinguishedFolderId Id="outbox"/>
      </FolderIds>
    </GetFolder>
  </soap:Body>
</soap:Envelope>

Я могу успешно получить информацию для одного изэти два почтовых ящика, но когда сообщение об ошибке отвечает следующим телом:

<?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:ErrorNonPrimarySmtpAddress</faultcode>
      <faultstring xml:lang="en-US">The primary SMTP address must be specified when referencing a mailbox.</faultstring>
      <detail>
        <e:ResponseCode xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">ErrorNonPrimarySmtpAddress</e:ResponseCode>
        <e:Message xmlns:e="http://schemas.microsoft.com/exchange/services/2006/errors">The primary SMTP address must be specified when referencing a mailbox.</e:Message>
        <t:MessageXml xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
          <t:Value Name="Primary"/>
        </t:MessageXml>
      </detail>
    </s:Fault>
  </s:Body>
</s:Envelope>

Почему я получаю такой ответ ErrorNonPrimarySmtpAddress об ошибке?В чем может быть проблема при получении данных в почтовом ящике второго пользователя?

1 Ответ

0 голосов
/ 15 ноября 2018

Вам нужно использовать основной SMTP-адрес - я сомневаюсь, что Name.Surname@mydomain.onmicrosoft.com является основным адресом.

Откройте адресную книгу в Outlook (Ctrl + Shift + B), откройте пользователя, переключитесь на вкладку «Адреса электронной почты», найдите адрес с префиксом «SMTP:» (обратите внимание на заглавные буквы).

...