Home  >  Article  >  Backend Development  >  Exchange Web Services - Find all unread messages using soap xml request

Exchange Web Services - Find all unread messages using soap xml request

WBOY
WBOYforward
2024-02-12 21:30:08657browse

Exchange Web 服务 - 使用soap xml 请求查找所有未读消息

php editor Baicao is here to introduce to you a method of using Exchange Web services to find all unread messages by using SOAP XML requests. Exchange Web Services is an API for communicating with Exchange Server, which provides the ability to access and manage email, calendar, contacts, and more. By using SOAP XML requests, we can send a request to the Exchange Server and get the data returned. In this post, we will detail how to use SOAP XML requests to find all unread messages.

Question content

In my application, I need to query the echange web service server and find all unread messages. I'm using golang and I'm sending soap xml request. I tried the following:

<?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:FindItem
            Traversal="Shallow">
            <m:ItemShape>
                <t:BaseShape>IdOnly</t:BaseShape>
            </m:ItemShape>
            <m:Restriction>
                <t:IsEqualTo>
                    <t:FieldURI FieldURI="item:IsRead" />
                    <t:FieldURIOrConstant>
                        <t:Constant Value="false" />
                    </t:FieldURIOrConstant>
                </t:IsEqualTo>
            </m:Restriction>
            <m:ParentFolderIds>
                <t:DistinguishedFolderId Id="inbox" />
            </m:ParentFolderIds>
        </m:FindItem>
    </soap:Body>
</soap:Envelope>

But in this case I get an error message indicating that my request is incorrect. If I delete 5762508ee778e8cb833abe130b8840ff, I get all the messages in my inbox. Any ideas on how to fix it would be welcome. Thank you

Solution

According to the fielduri attribute list, item:isread should be message:isread. Below is the equality filter from ews 一>:

<t:IsEqualTo>
  <t:FieldURI FieldURI="message:IsRead" />
  <t:FieldURIOrConstant>
    <t:Constant Value="false" />
  </t:FieldURIOrConstant>
</t:IsEqualTo>

The above is the detailed content of Exchange Web Services - Find all unread messages using soap xml request. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:stackoverflow.com. If there is any infringement, please contact admin@php.cn delete