2.2.1.19 SmartForward

The SmartForward command is used by clients to forward 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 SmartForward command is similar to the SendMail command (section 2.2.1.17), except that the outgoing message identifies the item being forwarded 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 forward.

The SmartForward command lists the message recipients.

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 SmartForward command requests and responses.

Element name

Scope

Reference

SmartForward

Request and Response

section 2.2.3.169

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

Forwardees

Request

section 2.2.3.79

Forwardee

Request

section 2.2.3.78

Name

Request

section 2.2.3.120.3

Email

Request

section 2.2.3.53

The XML schema for the SmartForward command request is described in section 6.41. The XML schema for the SmartForward command response is described in section 6.42. If the message was forwarded 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 SmartForward command can be applied to a meeting or an appointment. When SmartForward 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 SmartForward is applied to a recurring meeting and the InstanceId element is absent, the server SHOULD forward 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 forward 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 SmartForward 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 SmartForward request is WBXML data generated by using the XML elements specified in the table of elements shown earlier in this section.

For protocol version 2.5, the server includes the original message as an attachment to the outgoing message regardless of the type of item to which the SmartForward command is applied. For all other protocol versions, the server includes the original message as an attachment to the outgoing message only when SmartForward is applied to an appointment.