Ich möchte meine E-Mail-Ordner nach bestimmten E-Mails mit benutzerdefinierten Headern abfragen, die ich auf sie geschrieben habe. Aber es scheint, dass die SOAP-Nachricht, die ich erstelle, einige Probleme hat, es wiederholt immer leere Ergebnismenge.Ordner mit X-Headern abfragen MS Exchange
Ich bin sicher, dass ich die E-Mail im Ordner habe. Wenn ich nach dem Entfernen des Restriktionsteils abfrage, kann ich die E-Mail in den Abfrageergebnissen sehen. Und wenn ich mich mit meinem Konto mit sagen wir Thunderbird verbinden, dann kann ich sehen, dass die Kopfzeile dort ist.
Ich habe seit mindestens einer Woche gesucht, und das einzige Ergebnis, das ich finden konnte, ist, https://social.msdn.microsoft.com/Forums/exchange/en-US/8db4b750-d92f-489b-8282-d109d33314ff/using-finditem-request-to-find-the-items-with-given-header-value, die am Ende nur sagt mir, meine Umsetzung sollte funktionieren.
Danke fürs Lesen.
QUERY
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010"/>
</soap:Header>
<soap:Body>
<FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" Traversal="Shallow">
<ItemShape>
<t:BaseShape>Default</t:BaseShape>
</ItemShape>
<m:Restriction>
<t:IsEqualTo>
<t:ExtendedFieldURI DistinguishedPropertySetId="InternetHeaders" PropertyName="X-My-Header" PropertyType="String"/>
<t:FieldURIOrConstant>
<t:Constant Value="44A2F930-5E24-4F18-BC82-EC6B3A02E893"/>
</t:FieldURIOrConstant>
</t:IsEqualTo>
</m:Restriction>
<m:ParentFolderIds>
<t:FolderId Id="AQMkADAwATM0MDAAMS1jMzg1LWZkMDMtMDACLTAwCgAuAAADlxvq+JrhgkiMcRwVFQDzo9MBANxoXUHEHORLhWKXuo92RaUAAAIBDwAAAA=="/>
</m:ParentFolderIds>
</FindItem>
</soap:Body>
</soap:Envelope>
RESPONSE
<?xml version="1.0" encoding="utf-8"?>
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Header>
<h:ServerVersionInfo xmlns:h="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" MajorVersion="15" MinorVersion="20" MajorBuildNumber="178" MinorBuildNumber="14" Version="V2017_07_11"/>
</s:Header>
<s:Body>
<m:FindItemResponse xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">
<m:ResponseMessages>
<m:FindItemResponseMessage ResponseClass="Success">
<m:ResponseCode>NoError</m:ResponseCode>
<m:RootFolder TotalItemsInView="0" IncludesLastItemInRange="true">
<t:Items/>
</m:RootFolder>
</m:FindItemResponseMessage>
</m:ResponseMessages>
</m:FindItemResponse>
</s:Body>
</s:Envelope>
Wenn ich auch den Server mit AllProperties Grundform und mein Kopf Abfrage versuchen, hinzugefügt extendedfielduri der, dann bekomme ich meine Header in Reaktion . arbeiten oder nicht
QUERY
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010"/>
</soap:Header>
<soap:Body>
<GetItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages">
<ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
<t:AdditionalProperties>
<t:ExtendedFieldURI DistinguishedPropertySetId="InternetHeaders" PropertyName="X-My-Header" PropertyType="String"/>
</t:AdditionalProperties>
</ItemShape>
<ItemIds>
<t:ItemId Id="AQMkADAwATM0MDAAMS1jMzg1LWZkMDMtMDACLTAwCgBGAAADlxvq+JrhgkiMcRwVFQDzo9MHANxoXUHEHORLhWKXuo92RaUAAAIBDwAAANxoXUHEHORLhWKXuo92RaUAAS8MrxcAAAA="/>
</ItemIds>
</GetItem>
</soap:Body>
</soap:Envelope>
RESPONSE (Partial)
<t:DateTimeReceived>2017-10-25T07:55:56Z</t:DateTimeReceived>
<t:Size>11803</t:Size>
<t:Importance>Normal</t:Importance>
<t:IsSubmitted>false</t:IsSubmitted>
<t:IsDraft>true</t:IsDraft>
<t:IsFromMe>false</t:IsFromMe>
<t:IsResend>false</t:IsResend>
<t:IsUnmodified>false</t:IsUnmodified>
<t:InternetMessageHeaders>
<t:InternetMessageHeader HeaderName="Subject">Test</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="Mime-Version">1.0 (Mac OS X Mail 11.0 \(3445.1.7\))</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="Content-Type">text/html</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="X-Apple-Base-Url">x-msg://1/</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="X-Universally-Unique-Identifier">44A2F930-5E24-4F18-BC82-EC6B3A02E893</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="X-Apple-Mail-Remote-Attachments">YES</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="X-Apple-Windows-Friendly">1</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="Date">Wed, 25 Oct 2017 09:55:56 +0200</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="X-My-Header">44A2F930-5E24-4F18-BC82-EC6B3A02E893</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="Content-Transfer-Encoding">quoted-printable</t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="Message-Id"><[email protected]></t:InternetMessageHeader>
<t:InternetMessageHeader HeaderName="X-Uniform-Type-Identifier">com.apple.mail-draft</t:InternetMessageHeader>
</t:InternetMessageHeaders>
<t:DateTimeSent>2017-10-25T07:55:56Z</t:DateTimeSent>
<t:DateTimeCreated>2017-10-25T07:55:56Z</t:DateTimeCreated>
<t:ResponseObjects>
<t:ForwardItem/>
Danach habe ich versucht, auch, wenn das Hinzufügen der gleichen Parameter zu meiner Anfrage zu sehen. Aber kein Glück. Die folgende Abfrage gab genau die gleiche Antwort wie die erste zurück.
QUERY
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types" xmlns:m="http://schemas.microsoft.com/exchange/services/2006/messages">
<soap:Header>
<t:RequestServerVersion Version="Exchange2010"/>
</soap:Header>
<soap:Body>
<FindItem xmlns="http://schemas.microsoft.com/exchange/services/2006/messages" Traversal="Shallow">
<ItemShape>
<t:BaseShape>AllProperties</t:BaseShape>
<t:AdditionalProperties>
<t:ExtendedFieldURI DistinguishedPropertySetId="InternetHeaders" PropertyName="X-My-Header" PropertyType="String"/>
</t:AdditionalProperties>
</ItemShape>
<m:Restriction>
<t:IsEqualTo>
<t:ExtendedFieldURI DistinguishedPropertySetId="InternetHeaders" PropertyName="X-My-Header" PropertyType="String"/>
<t:FieldURIOrConstant>
<t:Constant Value="44A2F930-5E24-4F18-BC82-EC6B3A02E893"/>
</t:FieldURIOrConstant>
</t:IsEqualTo>
</m:Restriction>
<m:ParentFolderIds>
<t:FolderId Id="AQMkADAwATM0MDAAMS1jMzg1LWZkMDMtMDACLTAwCgAuAAADlxvq+JrhgkiMcRwVFQDzo9MBANxoXUHEHORLhWKXuo92RaUAAAIBDwAAAA=="/>
</m:ParentFolderIds>
</FindItem>
</soap:Body>
</soap:Envelope>
Entschuldigung, dass ich den Code aus meinen Versuchen kopiert habe, habe ich jede verfügbare Option für PropertyType versucht, aber kein Glück. Ich werde testen, ob der Wert zurückgegeben wird, wenn ich die E-Mail selbst abfrage. – gkaykck
Ich habe die Frage mit Ihren Vorschlägen aktualisiert. Leider ist das Problem immer noch da. – gkaykck
Haben Sie versucht, die Kopfzeile mithilfe von https://msdn.microsoft.com/en-us/library/office/dn596091(v=exchg.150).aspx bereitzustellen? Es sollte dann mit allen neuen Nachrichten funktionieren, die mit diesem Header empfangen wurden (zB nachdem der Header einer benannten Eigenschaft zugeordnet wurde und als zusätzliche Eigenschaft in der Nachricht verfügbar sein wird). –