私が書いたカスタムヘッダーを持つ特定の電子メールの電子メールフォルダを照会したい。しかし、それは私が作成しているSOAPメッセージのようないくつかの問題がある、それは常に空の結果セットを返します。Xヘッダーでフォルダを照会するMS Exchange
私はフォルダにメールがあると確信しています。制限部分を削除した後に私が照会すると、私は照会結果の電子メールを見ることができます。私がThunderbirdと言うと私のアカウントに接続すれば、そこにヘッダがあるのがわかります。
これまでに少なくとも1週間は検索しましたが、唯一の結果は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で、結局は実装がうまくいくと言います。
読んでいただきありがとうございます。
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>
応答
<?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>
その後、私は反応して、私のヘッダを取得し、私はまた、AllPropertiesのベース形状でサーバーを照会しようと私のヘッダがextendedfielduri年代に追加した場合。この後
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>
応答(一部)
<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/>
私も自分のクエリに同じパラメータを追加すると、仕事をしたりしませんかどうかを確認してみました。しかし、運がない。次のクエリは、最初のクエリとまったく同じ応答を返しました。私はちょうどあなたを示唆している
またする必要があるだろう
<t:ExtendedFieldURI DistinguishedPropertySetId="InternetHeaders" PropertyName="X-My-Header" PropertyType="StringArray"/>
あなたのコード内のように、すべてのインターネットヘッダーはプレーンな文字列でなければなりません
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>
申し訳ありません申し訳ありませんが、私は試用版からコードをコピーしましたが、私はPropertyTypeに利用可能なすべてのオプションを試していましたが、運はありません。私は電子メール自体を照会するときに値が返されるかどうかをテストします。 – gkaykck
質問をあなたの提案で更新しました。残念ながら、問題はまだそこにあります。 – gkaykck
https://msdn.microsoft.com/en-us/library/office/dn596091(v=exchg.150).aspxを使用してヘッダーをプロビジョニングしましたか?そのヘッダーで受信した新しいメッセージを処理する必要があります(たとえば、ヘッダーが名前付きプロパティーにマップされ、メッセージの追加プロパティーとして使用可能になるなど) –