Introduction - Microsoft



[MS-ASCON]: ActiveSync Conversations Protocol SpecificationIntellectual Property Rights Notice for Open Specifications DocumentationTechnical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages, standards as well as overviews of the interaction among each of these technologies. Copyrights. This documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you may make copies of it in order to develop implementations of the technologies described in the Open Specifications and may distribute portions of it in your implementations using these technologies or your documentation as necessary to properly document the implementation. You may also distribute in your implementation, with or without modification, any schema, IDL’s, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the Open Specifications. No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation. Patents. Microsoft has patents that may cover your implementations of the technologies described in the Open Specifications. Neither this notice nor Microsoft's delivery of the documentation grants any licenses under those or any other Microsoft patents. However, a given Open Specification may be covered by Microsoft's Open Specification Promise (available here: )?or the Community Promise (available here:? ). If you would prefer a written license, or if the technologies described in the Open Specifications are not covered by the Open Specifications Promise or Community Promise, as applicable, patent licenses are available by contacting iplg@. Trademarks. The names of companies and products contained in this documentation may be covered by trademarks or similar intellectual property rights. This notice does not grant any licenses under those rights. Reservation of Rights. All other rights are reserved, and this notice does not grant any rights other than specifically described above, whether by implication, estoppel, or otherwise. Tools. The Open Specifications do not require the use of Microsoft programming tools or programming environments in order for you to develop an implementation. If you have access to Microsoft programming tools and environments you are free to take advantage of them. Certain Open Specifications are intended for use in conjunction with publicly available standard specifications and network programming art, and assumes that the reader either is familiar with the aforementioned material or has immediate access to it.Preliminary Documentation. This Open Specification is preliminary documentation for this technology.? Since the documentation may change between this preliminary version and the final version, there are risks in relying on preliminary documentation. To the extent that you incur additional development obligations or any other costs as a result of relying on this preliminary documentation, you do so at your own risk.Revision SummaryAuthorDateVersionCommentsMicrosoft CorporationApril 10, 20090.1Initial Availability.Table of Contents TOC \o "1-5" \h \z 1Introduction PAGEREF _Toc226937794 \h 51.1Glossary PAGEREF _Toc226937795 \h 51.2References PAGEREF _Toc226937796 \h 51.2.1Normative References PAGEREF _Toc226937797 \h 51.2.2Informative References PAGEREF _Toc226937798 \h 61.3Protocol Overview PAGEREF _Toc226937799 \h 61.4Relationship to Other Protocols PAGEREF _Toc226937800 \h 61.5Prerequisites/Preconditions PAGEREF _Toc226937801 \h 61.6Applicability Statement PAGEREF _Toc226937802 \h 61.7Versioning and Localization PAGEREF _Toc226937803 \h 61.8Vendor-Extensible Fields PAGEREF _Toc226937804 \h 61.9Standards Assignments PAGEREF _Toc226937805 \h 62Messages PAGEREF _Toc226937806 \h 72.1Transport PAGEREF _Toc226937807 \h 72.2Message Syntax PAGEREF _Toc226937808 \h 72.2.1Complex Types PAGEREF _Toc226937809 \h 72.2.1.1ItemOperations Command Complex Types PAGEREF _Toc226937810 \h 72.2.1.1.1Move PAGEREF _Toc226937811 \h 72.2.1.1.2Move.Options PAGEREF _Toc226937812 \h 82.2.2Elements PAGEREF _Toc226937813 \h 82.2.2.1E-mail Class Elements PAGEREF _Toc226937814 \h 92.2.2.1.1ConversationId PAGEREF _Toc226937815 \h 92.2.2.1.2ConversationIndex PAGEREF _Toc226937816 \h 92.2.2.2GetItemEstimate Command Elements PAGEREF _Toc226937817 \h 92.2.2.2.1Collections.Collection.ConversationMode PAGEREF _Toc226937818 \h 92.2.2.3ItemOperations Command Elements PAGEREF _Toc226937819 \h 102.2.2.3.1Move.ConversationId PAGEREF _Toc226937820 \h 102.2.2.3.2Move.DstFldId PAGEREF _Toc226937821 \h 102.2.2.3.3Move.Options.MoveAlways PAGEREF _Toc226937822 \h 102.2.2.3.4Response.Move.Status PAGEREF _Toc226937823 \h 102.2.2.3.5Response.Move.ConversationId PAGEREF _Toc226937824 \h 102.2.2.4Search Command Elements PAGEREF _Toc226937825 \h 112.2.2.4.1Store.Query.ConversationId PAGEREF _Toc226937826 \h 112.2.2.5Sync Command Elements PAGEREF _Toc226937827 \h 112.2.2.5.1Collections.Collection.ConversationMode PAGEREF _Toc226937828 \h 113Protocol Details PAGEREF _Toc226937829 \h 113.1Client Details PAGEREF _Toc226937830 \h 113.1.1Abstract Data Model PAGEREF _Toc226937831 \h 113.1.2Timers PAGEREF _Toc226937832 \h 123.1.3Initialization PAGEREF _Toc226937833 \h 123.1.4Higher-Layer Triggered Events PAGEREF _Toc226937834 \h 123.1.4.1Deleting a Conversation PAGEREF _Toc226937835 \h 123.1.4.2Flagging a Conversation for Follow-up PAGEREF _Toc226937836 \h 123.1.4.3Marking a Conversation as Read or Unread PAGEREF _Toc226937837 \h 123.1.4.4Ignoring a Conversation PAGEREF _Toc226937838 \h 133.1.4.5Moving a Conversation from the Current Folder PAGEREF _Toc226937839 \h 133.1.4.6Setting up a Conversation to be Moved Always PAGEREF _Toc226937840 \h 133.1.4.7Finding a Conversation PAGEREF _Toc226937841 \h 133.1.4.8Synchronizing a Conversation PAGEREF _Toc226937842 \h 143.1.4.9Applying a Conversation-based Filter PAGEREF _Toc226937843 \h 143.1.5Message Processing Events and Sequencing Rules PAGEREF _Toc226937844 \h 143.1.6Timer Events PAGEREF _Toc226937845 \h 143.1.7Other Local Events PAGEREF _Toc226937846 \h 143.2Server Details PAGEREF _Toc226937847 \h 143.2.1Abstract Data Model PAGEREF _Toc226937848 \h 143.2.2Timers PAGEREF _Toc226937849 \h 153.2.3Initialization PAGEREF _Toc226937850 \h 153.2.4Higher-Layer Triggered Events PAGEREF _Toc226937851 \h 153.2.5Message Processing Events and Sequencing Rules PAGEREF _Toc226937852 \h 153.2.5.1Processing a Sync Command PAGEREF _Toc226937853 \h 153.2.5.1.1Deleting a Conversation PAGEREF _Toc226937854 \h 153.2.5.1.2Marking a Conversation as Read or Unread PAGEREF _Toc226937855 \h 153.2.5.1.3Flagging a Conversation for Follow-up PAGEREF _Toc226937856 \h 163.2.5.2Processing a GetItemEstimate Command PAGEREF _Toc226937857 \h 163.2.5.3Processing an ItemOperations Command PAGEREF _Toc226937858 \h 163.2.5.3.1Ignoring a Conversation PAGEREF _Toc226937859 \h 163.2.5.3.2Always Moving a Conversation PAGEREF _Toc226937860 \h 163.2.5.4Processing a MoveItems Command PAGEREF _Toc226937861 \h 173.2.5.5Processing a Search Command PAGEREF _Toc226937862 \h 173.2.5.6Filtering PAGEREF _Toc226937863 \h 173.2.6Timer Events PAGEREF _Toc226937864 \h 173.2.7Other Local Events PAGEREF _Toc226937865 \h 174Protocol Examples PAGEREF _Toc226937866 \h 174.1Synchronization From the Server PAGEREF _Toc226937867 \h 174.2Ignoring a Conversation PAGEREF _Toc226937868 \h 185Security PAGEREF _Toc226937869 \h 195.1Security Considerations for Implementers PAGEREF _Toc226937870 \h 195.2Index of Security Parameters PAGEREF _Toc226937871 \h 196Appendix A: Office/Exchange Behavior PAGEREF _Toc226937872 \h 19Index PAGEREF _Toc226937873 \h 20Introduction XE "Introduction" This document specifies the ActiveSync Conversations protocol, which is an XML-based format that is used to improve the ways in which e-mail messages are triaged when they are displayed in conversation view. Glossary XE "Glossary" The following terms are defined in [MS-OXGLOS]: classconversationconversation IDconversation indexGUIDWAP Binary XML (WBXML)XMLXML schemaMAY, SHOULD, MUST, SHOULD NOT, MUST NOT: These terms (in all caps) are used as described in [RFC2119]. All statements of optional behavior use either MAY, SHOULD, or SHOULD NOT.References Normative References XE "Normative references" XE "References:Normative references" [MS-ASCMD] Microsoft Corporation, "ActiveSync Command Reference Protocol Specification", December 2008.[MS-ASDTYPE] Microsoft Corporation, "ActiveSync Data Types Protocol Specification", December 2008.[MS-ASEMAIL] Microsoft Corporation, "ActiveSync E-Mail Class Protocol Specification", December 2008.[MS-ASWBXML] Microsoft Corporation, "ActiveSync WAP Binary XML (WBXML) Protocol Specification", December 2008.[MS-OXGLOS] Microsoft Corporation, "Exchange Server Protocols Master Glossary", June 2008.[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, .[XML] Bray, T., et al., "Extensible Markup Language (XML) 1.0 (Fifth Edition)", References XE "Informative references" XE "References:Informative references" None.Protocol Overview XE "Protocol Overview" The ActiveSync Conversations protocol is an XML-based format that is used to improve the ways in which e-mail messages are triaged, allowing a user to view a series of send-response e-mail messages as a single representation, called a conversation.A conversation appears in the Inbox as one unit and allows the user to read the series of related e-mail messages in a single effort. Each e-mail message is assigned a conversation ID that is used to identify the conversation to which the e-mail message belongs.Relationship to Other Protocols XE "Relationship to other protocols" The ActiveSync Conversations protocol consists of a series of XML elements that are embedded inside a command request or a command response. For details about command requests and responses, see [MS-ASCMD]. The WAP Binary XML (WBXML), as specified in [MS-ASWBXML], is used to transmit the XML markup that constitutes the request body or the response body.Prerequisites/Preconditions XE "Prerequisites/preconditions" None.Applicability Statement XE "Applicability statement" This protocol is applicable in scenarios in which a client needs to synchronize its e-mail messages and files with a server and wants to present a view in which e-mail messages are grouped by conversation rather than listed serially.Versioning and Localization XE "Versioning and localization" None.Vendor-Extensible Fields XE "Vendor-extensible fields" None.Standards Assignments XE "Standards assignments" None.Messages XE "Messages" Transport XE "Transport" XE "Messages:Transport" The ActiveSync Conversations protocol consists of a series of XML elements that are embedded inside a command request or a command response. The XML markup that constitutes the request body or the response body is transmitted between client and server by using WAP Binary XML (WBXML), as specified in [MS-ASWBXML].Message Syntax XE "Message syntax" XE "Messages:Message syntax" The XML markup that is used by the ActiveSync Conversations protocol MUST be well-formed XML, as specified in [XML].The XML elements that are used by the ActiveSync Conversations protocol are embedded inside a request or response for the following commands: GetItemEstimateItemOperationsMoveItemsSearchSyncFor details about the requests and responses for these commands, see [MS-ASCMD].The complex types and elements of the ActiveSync Conversations protocol are defined in the following namespaces: AirSync, Email2, ItemOperations, and plex TypesThe following table summarizes the set of common XML schema complex types that are defined by this specification for the ItemOperations command. For details about the ItemOperations command, see [MS-ASCMD] section 2.2.1.plex TypeDescriptionMoveIndicates that the conversation is to be moved.Move.OptionsSpecifies the options for the Move type.ItemOperations Command Complex TypesThe following complex types are defined in the ItemOperations namespace.MoveThe Move type indicates that a conversation is to be moved from all folders to a destination folder. The Move type is a required container type in an ItemOperations command request and response. It contains the following child elements:ConversationId (request and response) ― see sections 2.2.2.3.1 and 2.2.2.3.6DstFldId (request only) ― see section 2.2.2.3.2Options (request only) ― see section 2.2.1.1.2Status (response only) ― see section 2.2.2.3.4The container type is specified in [MS-ASDTYPE] section 2.8.Move.OptionsThe Move.Options type specifies the options for the Move type. The Move.Options type is an optional container type in an ItemOperations command request. It contains the following child element:MoveAlways (request only) ― see section 2.2.2.3.3The container type is specified in [MS-ASDTYPE] section 2.8.ElementsThe following tables summarize the set of common XML schema elements that are defined by this specification for the E-mail class, GetItemEstimate command, ItemOperations command, Search command, and Sync command. For details about the E-mail class, see [MS-ASEMAIL]. For details about the commands, see [MS-ASCMD] sections 2.2.1.7, 2.2.1.8, 2.2.1.14, and 2.2.1.19.Elements MUST NOT have child elements in either the command request or command response.ElementDescriptionConversationIdUsed by the E-mail class to specify the conversation ID for an e-mail message.ConversationIndexUsed by the E-mail class to specify the conversation index for an e-mail message.Collections.Collection.ConversationModeUsed by the GetItemEstimate command to enable conversation-based filtering of item estimates.Move.ConversationIdUsed by the ItemOperations command to specify the conversation ID of the conversation that is to be moved.Move.DstFldIdUsed by the ItemOperations command to specify the destination folder, which is the folder to which the conversation is moved.Move.Options.MoveAlwaysUsed by the ItemOperations command to set up the conversation to be always moved.Response.Move.StatusUsed by the ItemOperations command to specify the status of the move action.Response.Move.ConversationIdUsed by the ItemOperations command to specify the conversation ID of the conversation that is moved.Store.Query.ConversationIdUsed by the Search command to specify the conversation ID of the conversation for which to search.Collections.Collection..ConversationModeUsed by the Sync command to enable conversation-based filtering and synchronization of conversation-based properties.E-mail Class ElementsThe following elements are defined in the Email2 namespace and are children of the ApplicationData element in the Sync command, as specified in [MS-ASCMD] sections 2.2.1.19.1.6 and 2.2.1.19.2.2.ConversationIdThe ConversationId element is a required element that specifies the conversation ID for an e-mail message. The value of this element is a GUID. The value MUST NOT be null for the E-mail content class. The value can be null in the following cases:The content class of the item is not E-mail.The e-mail message never was transmitted and does not have a subject.ConversationIndexThe ConversationIndex element is a required element that specifies the conversation index for an e-mail message. The value of this element is an array of bytes in the following format.{Timestamp of first message}+ {Timestamps of subsequent replies}GetItemEstimate Command ElementsThe following elements are defined in the AirSync namespace.Collections.Collection.ConversationModeThe Collections.Collection.ConversationMode element enables conversation-based filtering of item estimates. This element is optional in the GetItemEstimate command request.The Collections.Collection.ConversationMode element does not have a value.ItemOperations Command ElementsThe following elements are defined in the ItemOperations namespace.Move.ConversationIdThe Move.ConversationId element specifies the conversation ID of the conversation that is to be moved. This element is required in the ItemOperations command request.The value of this element is a GUID.Move.DstFldIdThe Move.DstFldId element specifies the destination folder, which is the folder to which the conversation is moved. This element is required in the ItemOperations command request.The value of this element is a string, as specified in [MS-ASDTYPE] section 2.1.Move.Options.MoveAlwaysThe Move.Options.MoveAlways element sets up a conversation to be moved always. When a conversation is set to be moved always, all e-mail messages in the conversation, including all future e-mail messages for that conversation, are moved from all folders to a destination folder. This element is required in the ItemOperations command request.The Move.Options.MoveAlways element does not have a value.Response.Move.StatusThe Response.Move.Status element specifies the status of the move action. This element is required in the ItemOperations command response.The value of this element is an integer. The values listed in the following table are valid.ValueMeaning1Success. The server successfully completed the operation.2Protocol error. The XML is not valid.3Server error. There was a complete or partial failure of the operation.6Not Found. The conversation does not exist.155Protocol error. The Options element does not contain a MoveAlways element.156Action not supported. The destination folder cannot be Draft, Junk E-mail, or Outbox.Response.Move.ConversationIdThe Response.Move.ConversationId element specifies the conversation ID of the conversation that is moved. This element is required in the ItemOperations command response.The value of this element is a GUID.Search Command ElementsThe following elements are defined in the Search namespace.Store.Query.ConversationIdThe Store.Query.ConversationId element specifies the conversation ID of the conversation for which to search. This element is optional in the Search command request.The value of this element is a GUID.Sync Command ElementsThe following elements are defined in the AirSync namespace.Collections.Collection.ConversationModeThe Collections.Collection.ConversationMode element enables conversation-based filtering and synchronization of conversation-based properties. This element is optional in the Sync command request.This element does not have a value.Protocol Details XE "Protocol details" Client Details XE "Client details" XE "Protocol details:Client details" Abstract Data ModelThis section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this mand request: A WBXML-formatted message that adheres to the command schemas specified in [MS-ASCMD].E-mail messages: Every e-mail message MUST include the following to support conversations:Conversation ID: A unique value that is associated with a conversation. This value is specified by the ConversationId element that is included in the E-mail class. For details about the E-mail class, see [MS-ASEMAIL].Conversation index: An index that is used by clients to generate a conversation tree view. This value is specified by the ConversationIndex element that is included in the E-mail class. For details about the E-mail class, see [MS-ASEMAIL].The server creates a conversation ID and a conversation index on the e-mail item when the user sends an e-mail message. The client MUST NOT change the conversation ID or the conversation index.TimersNone.InitializationNone.Higher-Layer Triggered EventsDeleting a ConversationWhen a conversation is deleted, all e-mail messages that are in the conversation are moved from the current folder to the Deleted Items folder. Future e-mail messages for the same conversation are not affected.To delete a conversation, the client sends a Sync command request that contains a Delete element for each item in the conversation. For more details about the Delete element in the Sync command, see [MS-ASCMD].Flagging a Conversation for Follow-upWhen a conversation is flagged for follow-up, the most recent e-mail message that is in the conversation and that is in the current folder is flagged. Clearing a flag on a conversation will clear flags on all e-mail messages that are in the conversation and that are in the current folder. Marking a flagged conversation as complete will mark all flagged e-mail messages that are in the conversation and that are in the current folder as complete.To set a flag on a conversation, clear a flag on a conversation, or mark a flagged conversation as complete, the client sends a Sync command request that contains a Change element, as specified in [MS-ASCMD] section 2.2.1.19.1.7.Marking a Conversation as Read or UnreadWhen a conversation is marked as read or unread, all e-mail messages that are in the conversation and that are in the current folder are marked as such.To mark a conversation as read or unread, the client sends a Sync command request that contains a Change element, as specified in [MS-ASCMD] section 2.2.1.19.1.7.Ignoring a ConversationWhen a conversation is ignored, all e-mail messages in the conversation, including all future e-mail messages for that conversation, are moved from all folders to the Deleted Items folder.To ignore a conversation, the client sends an ItemOperations command request that contains a Move element and its child elements, as specified in section 2.2.1.1.1 of this document. The Move.DstFldId element MUST contain the ID of the Deleted Items folder. Multiple Move elements, one for each conversation to be moved, can be included within one ItemOperations request. In this case, the Move elements are processed in the order specified. For details about the ItemOperations command request, see [MS-ASCMD] section 2.2.1.8.2.Moving a Conversation from the Current FolderWhen a conversation is moved from the current folder to another folder, all e-mail messages that are in the conversation are moved from the current folder to the destination folder.To move a conversation from the current folder to a destination folder, the client sends a MoveItems command request, as specified in [MS-ASCMD] section 2.2.1.10.1.Setting up a Conversation to be Moved AlwaysWhen a conversation is set to be moved always, all e-mail messages in the conversation, including all future e-mail messages for that conversation, are moved from all folders to a destination folder.To set a conversation to be moved always, the client sends an ItemOperations command request that contains a Move element and its child elements, as specified in section 2.2.1.1.1 of this document. The Outbox folder and Drafts folder MUST NOT be specified as the destination folder. For details about the ItemOperations command request, see [MS-ASCMD] section 2.2.1.8.2.Finding a ConversationSearching for a particular conversation will search across all folders for all e-mail messages that are in the conversation.To search for a conversation, the client sends a Search command request with the Store.Query.ConversationId element, which is specified in section 2.2.2.4.1 of this document. The Store.Query.ConversationId element can be used in conjunction with other Query child elements. The client MUST scope the query to the E-mail class. For details about the Search command request, see [MS-ASCMD] section 2.2.1.14.1.Synchronizing a ConversationWhen a conversation is synchronized, all e-mail messages that are part of the conversation and that are in the specified folder are synchronized.To synchronize a conversation, the client sends a Sync command request with a Collections.Collection.ConversationMode element for the particular collection to be synchronized.Applying a Conversation-based FilterConversation-based filtering augments the date-based filtering. For details about date-based filtering, see [MS-ASCMD] section 2.2.1.19.1.21.When a conversation-based filter is applied to a synchronization of the current folder, the complete conversation is retrieved if any e-mail message in the conversation falls within the date-based filter.To apply a conversation-based filter to a synchronization, the client includes the Collections.Collection. ConversationMode element in a Sync command request. For details about the Sync command request, see [MS-ASCMD] section 2.2.1.19.1.A conversation-based filter can also be applied to the GetItemEstimate command to get an estimate of the items meeting the filter criteria that need to be synchronized. The client can apply the filter by including the Collections.Collection.ConversationMode element in a GetItemEstimate command request. For details about the GetItemEstimate command request, see [MS-ASCMD] section 2.2.1.7.1.Message Processing Events and Sequencing RulesNone.Timer EventsNone.Other Local EventsNone.Server Details XE "Server details" XE "Protocol details:Server details" Abstract Data ModelThis section describes a conceptual model of possible data organization that an implementation maintains to participate in this protocol. The described organization is provided to facilitate the explanation of how the protocol behaves. This document does not mandate that implementations adhere to this model as long as their external behavior is consistent with that described in this mand response: A WBXML-formatted message that adheres to the command schemas specified in [MS-ASCMD].E-mail messages: Every e-mail item MUST include the following to support conversations:Conversation ID: A unique value that is associated with a conversation. This value is specified by the ConversationId element that is included in the E-mail class. For details about the E-mail class, see [MS-ASEMAIL].Conversation index: An index that is used by clients to generate a conversation tree view. This value is specified by the ConversationIndex element that is included in the E-mail class. For details about the E-mail class, see [MS-ASEMAIL].The server creates a conversation ID and a conversation index on the e-mail item when the user sends an e-mail message. The client MUST NOT change the conversation ID or the conversation index.TimersNone.InitializationNone.Higher-Layer Triggered EventsThe server creates a conversation ID and a conversation index on the e-mail item when the user sends an e-mail message.Message Processing Events and Sequencing RulesProcessing a Sync CommandDeleting a ConversationThe server moves all e-mail messages that are in the conversation from the current folder to the Deleted Items folder. The server does not move future e-mail messages for the conversation.The server sends a Sync response, as specified in [MS-ASCMD] section 2.2.1.19.2.Marking a Conversation as Read or UnreadThe server marks all e-mails that are in the conversation and that are in the current folder as read or unread, whichever is specified.The server sends a Sync response, as specified in [MS-ASCMD] section 2.2.1.19.2.Flagging a Conversation for Follow-upIf a conversation is flagged for follow-up, the server flags the most recent e-mail message that is in the conversation and that is in the current folder. If a flag is cleared on a conversation, the server clears flags on all e-mail messages that are in the conversation and that are in the current folder. If a flagged conversation is marked as complete, the server marks all flagged e-mail messages that are in the conversation and that are in the current folder as complete.The server sends a Sync response, as specified in [MS-ASCMD] section 2.2.1.19.2.Processing a GetItemEstimate CommandWhen a conversation-based filter is applied to the GetItemEstimate command, the server sends an estimate of the items that meet the filter criteria and need to be synchronized.In the event of failure, the server sends the following status code. For details about the GetItemEstimate response, see [MS-ASCMD] section 2.2.1.7.2.ValueMeaning2Protocol error. The conversation-based filter cannot be applied to a message that is not of the E-mail class. Processing an ItemOperations CommandIgnoring a ConversationWhen a conversation is ignored, the server moves all e-mail messages in the conversation, including all future e-mail messages for that conversation, from all folders to the Deleted Items folder.The server's response includes the Response.Move.Status element, which contains one of the values specified in section 2.2.2.3.4, and the Response.Move.ConversationId element.Always Moving a ConversationWhen a conversation is set to be moved always, the server moves all e-mail messages in the conversation, including all future e-mail messages for that conversation, from all folders to a destination folder.The server's response includes the Response.Move.Status element, which contains one of the values specified in section 2.2.2.3.4, and the Response.Move.ConversationId element.Processing a MoveItems CommandThe server moves all e-mail messages that are in the conversation from the current folder to the destination folder. The server sends a MoveItems response, as specified in [MS-ASCMD] section 2.2.1.10.2.Processing a Search CommandThe server searches across all folders for all e-mail messages that are in the conversation and returns a result set. For details about the Search command response, see [MS-ASCMD] section 2.2.1.14.2.FilteringIf an individual e-mail message is moved or deleted, and, as a result, the rest of the messages in the conversation fall out of filter, the server SHOULD send soft deletes for those messages only during the aging-off process. For details about soft deletes, see [MS-ASCMD] sections 2.2.1.19.1.16 and 2.2.1.19.2.9.The server will not distinguish between a date-based filter and a conversation-based filter when setting a flag, clearing a flag, or marking a flagged conversation as complete, as specified in section 3.1.4.2.The server will not distinguish between a date-based filter and a conversation-based filter when marking a conversation as read or unread, as specified in section 3.1.4.3.Timer EventsNone.Other Local EventsNone.Protocol Examples XE "Protocol examples" Synchronization From the ServerThe following example shows the server returning an e-mail message. Note that the conversation ID and conversation index are included in the ApplicationData node.Response from the server:<?xml version="1.0" encoding="utf-8"?><Sync xmlns:email="POOMMAIL:"xmlns:airsyncbase="AirSyncBase:" xmlns="AirSync:"> <Collections> <Collection> <SyncKey>1601897837</SyncKey> <CollectionId>7</CollectionId> <Status>1</Status> <Commands> <Add> <ServerId>7:1</ServerId> <ApplicationData> <A:To>"deviceuser" &lt;someone@&gt;</A:To> <A:From>"deviceuser2" &lt;someone2@&gt;</A:From> <A:Subject>Test report</A:Subject> <A:DateReceived>2009-03-21T07:04:26.948Z</A:DateReceived> <A:DisplayTo>deviceuser</A:DisplayTo> <A:ThreadTopic>Test report</A:ThreadTopic> <A:Importance>1</A:Importance> <A:Read>1</A:Read> <B:Body> <B:Type>1</B:Type> <B:EstimatedDataSize>100</B:EstimatedDataSize> <B:Truncated>1</B:Truncated> <B:Data>Test data</B:Data> </B:Body> <A:MessageClass>IPM.Note</A:MessageClass> <A:InternetCPID>20127</A:InternetCPID> <A:Flag/> <A:ContentClass>urn:content-classes:message</A:ContentClass> <B:NativeBodyType>2</B:NativeBodyType> <C:ConversationId>BBA4726D4399D44C83297D4BD904ED2D</C:ConversationId> <C:ConversationIndex>01C9A9F345</C:ConversationIndex> <A:Categories/> </ApplicationData> </Add> </Commands> </Collection> </Collections></Sync>Ignoring a ConversationThe following example shows the client's request to ignore a conversation and the server's response.Request from the client:<ItemOperations> <Move> <ConversationId>...</ConversationId> <DstFldId>DeletedItems-Folder-ID</DstFldId> <Options> <MoveAlways/> </Options> </Move></ItemOperations>Response from the server:<ItemOperations> <Response> <Status>1</Status> <Move> <Status>1</Status> <ConversationId>...</ConversationId> </Move> </Response></ItemOperations>Security XE "Security" Security Considerations for Implementers XE "Security considerations for implementers" XE "Security:Security considerations for implementers" None.Index of Security Parameters XE "Index of security parameters" XE "Security:Index of security parameters" None.Appendix A: Office/Exchange Behavior XE "Office/Exchange behavior" The information in this specification is applicable to the following versions of Office/Exchange:Microsoft Outlook 2010Microsoft Exchange Server 2010Exceptions, if any, are noted below. Unless otherwise specified, any statement of optional behavior in this specification prescribed using the terms SHOULD or SHOULD NOT implies Office/Exchange behavior in accordance with the SHOULD or SHOULD NOT prescription. Unless otherwise specified, the term MAY implies Office/Exchange does not follow the prescription.Index INDEX \c "1" \z "1033" Applicability statement, 6Client details, 11Glossary, 5Index of security parameters, 19Informative references, 6Introduction, 5Message syntax, 7Messages, 7Message syntax, 7Transport, 7Normative references, 5Office/Exchange behavior, 19Prerequisites/preconditions, 6Protocol details, 11Client details, 11Server details, 14Protocol examples, 17Protocol Overview, 6ReferencesInformative references, 6Normative references, 5Relationship to other protocols, 6Security, 19Index of security parameters, 19Security considerations for implementers, 19Security considerations for implementers, 19Server details, 14Standards assignments, 6Transport, 7Vendor-extensible fields, 6Versioning and localization, 6 ................
................

In order to avoid copyright disputes, this page is only a partial summary.

Google Online Preview   Download