2.2.1.20 SmartReply

The SmartReply command is used by clients to reply to messages without retrieving the full, original message from the server. The body of the request depends on the protocol version that is being used. See the details about protocol versions at the end of this section.

The SmartReply command is similar to the SendMail command (section 2.2.1.17), except that the outgoing message identifies the item being replied to and includes the text of the new message. The full text of the original message is retrieved and sent by the server. Using the server copy of the original message saves network bandwidth by not downloading the original message to the client and then uploading it again with the reply.

The SmartReply command lists the message recipients, so it is used to implement both Reply and Reply-to-All functionality. It is the responsibility of the client to implement Reply and Reply-to-All functionality.

The ComposeMail namespace is the primary namespace for this section. Elements referenced in this section that are not defined in the ComposeMail namespace use the namespace prefixes defined in section 2.2.4.

The following table lists the elements that are used in SmartReply command requests and responses.

Element name

Scope

Reference

SmartReply

Request and Response

section 2.2.3.170

ClientId

Request

section 2.2.3.28.1

Source

Request

section 2.2.3.173

FolderId

Request

section 2.2.3.74

ItemId

Request

section 2.2.3.93

LongId

Request

section 2.2.3.98.4

InstanceId

Request

section 2.2.3.92.2

AccountId

Request

section 2.2.3.3.1

SaveInSentItems

Request

section 2.2.3.157

ReplaceMime

Request

section 2.2.3.148

Mime

Request

section 2.2.3.109

Status

Response

section 2.2.3.177.16

The XML schema for the SmartReply command request is described in section 6.43. The XML schema for the SmartReply command response is described in section 6.44. If the message was sent successfully, the server returns an empty response.

 HTTP/1.1 200 OK
 Date: Thu, 03 Sep 2009 21:05:44 GMT
 Content-Length: 0

Clients SHOULD NOT save messages directly to the local Sent Items folder; instead, clients SHOULD use the SaveInSentItems element (section 2.2.3.157) to automatically save the messages on the server. It is not possible to reconcile the local Sent Items folder with the server's Sent Items folder by using the Sync command (section 2.2.1.21). Items in the server's Sent Items folder can be added to the client by using the Sync command, but it is not possible to add items that are in the local Sent Items folder to the server.

The SmartReply command can be applied to a meeting. When SmartReply is applied to a recurring meeting, the InstanceId element (section 2.2.3.92.2) specifies the ID of a particular occurrence in the recurring meeting. If SmartReply is applied to a recurring meeting and the InstanceId element is absent, the server SHOULD reply for the entire recurring meeting. If the value of the InstanceId element is invalid, the server responds with Status element (section 2.2.3.177.16) value 104, as specified in section 2.2.2.

By default, because the original message and the reply messages can use different character sets, this command will send the outgoing message by using the UTF-8 character set for the body of the message.

Protocol Versions

The following table specifies the protocol versions that support this command. The client indicates the protocol version being used by setting either the MS-ASProtocolVersion header, as specified in [MS-ASHTTP] section 2.2.1.1.2.6, or the Protocol version field, as specified in [MS-ASHTTP] section 2.2.1.1.1.1, in the request.

Protocol version

Command support

2.5

Yes

12.0

Yes

12.1

Yes

14.0

Yes

14.1

Yes

16.0

Yes

16.1

Yes

The body of the request differs as follows, depending on the protocol version being used by the client.

  • For protocol versions 2.5, 12.0, and 12.1, the body of the SmartReply request is the MIME representation of the message to be sent. In this case, the client sets the Content-Type header to "message/rfc822".

  • For protocol versions 14.0, 14.1, 16.0, and 16.1, the body of the SmartReply request is WBXML data generated by using the XML elements specified in the table of elements shown earlier in this section.