Я пытаюсь использовать Exchange Web Services (EWS) с приложением и аутентификацией OAuth2.
Что я сделал:
В результате я получаю следующее: «Для этого типа токена OAuth должен присутствовать заголовок ExchangeImpersonation SOAP». Я не могу понять, что мне делать, чтобы это исправить.
Даже пробовал с ExchangeImpersonate и SmtpAddress с тем же адресом почтового ящика, что и выше, но таким образом я получаю другую ошибку «Почтовый ящик не найден». Но почтовый ящик есть! (проверено на нескольких почтовых ящиках).
Мои вопросы: что я делаю не так с EWS?
Запрос:
POST https://outlook.office365.com/ews/Exchange.asmx
Authorization: Bearer <token>
X-AnchorMailbox: mailbox@something.onmicrosoft.com
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<soap:Header>
<t:RequestServerVersion Version="Exchange2016"/>
<t:ExchangeImpersonation>
<t:ConnectingSID>
<t:PrimarySmtpAddress>
mailbox@something.onmicrosoft.com
</t:PrimarySmtpAddress>
</t:ConnectingSID>
</t:ExchangeImpersonation>
</soap:Header>
<soap:Body>
<GetAttachment xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"
xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<AttachmentShape/>
<AttachmentIds>
<t:AttachmentId Id="AAMkADAwNzdjNTg3LTc4M2ItNDE0Yi05MTk4LTQxZDBlYTc1NmMxZgBGAAAAAAAiixtLGariQY7rf5pAKRZZBwBVk8babsuEQ4s2Znfj9fB5AAAAAAEMAABVk8babsuEQ4s2Znfj9fB5AADq3B14AAABEgAQAKZOAcjZCBxHpqvY6XmXp5w="/>
</AttachmentIds>
</GetAttachment>
</soap:Body>
</soap:Envelope>
Ответ:
ErrorNonExistentMailbox The SMTP address has no mailbox associated with it.