Export (0) Print
Expand All

4.4 Sending an E-Mail Message from a Messaging User to Another Messaging User

Consider the following scenario: Joe Healy needs to send a high importance e-mail message to inform his customer, Ed Banti, that the order request form that Ed sent needs to be signed. Joe also wants to get a read receipt when Ed reads this e-mail message. The following is a description of what a client might do to accomplish Joe's intentions and the responses a server might return.

To create an E-mail object, the client uses the RopCreateMessage ROP ([MS-OXCROPS] section 2.2.6.2). The server returns a success code and a handle to a Message object. Joe types the e-mail subject and message text (plain text format), sets the e-mail message to high importance, and requests a read receipt. The client then uses the RopSetProperties ROP ([MS-OXCROPS] section 2.2.8.6) to transmit Joe's e-mail message data to the server. The values of each of the properties set by the RopSetProperties ROP are listed in the following table. The types in the table are described in [MS-OXCDATA] section 2.11.1.

Property

Property ID

Type

Value

PidTagBody ([MS-OXCMSG] section 2.2.1.56.1)

0x1000

0x001f (PtypString)

"Please sign the order request.\LF\CR"

PidTagMessageClass ([MS-OXCMSG] section 2.2.1.3)

0x001A

0x001F (PtypString)

"IPM.Note"

PidTagMessageFlags ([MS-OXCMSG] section 2.2.1.6)

0x0E07

0x0003 (PtypInteger32)

mfUnsent

PidTagConversationTopic (section 2.2.1.5)

0x0070

0x001f (PtypString)

"Order Request"

PidTagConversationIndex (section 2.2.1.3)

0x0071

0x0102 (PtypBinary)

22 bytes

01 c8 74 0b 0f 9c 35 2c

02 17 93 af 43 a9 8b b4

c1 bb ef 97 7d 4f

PidTagImportance ([MS-OXCMSG] section 2.2.1.11)

0x0017

0x0003 (PtypInteger32)

0x00000002

High Importance

PidTagMessageDeliveryTime (section 2.2.3.9)

0x0E06

0x0040 (PtypTime)

2008/02/20 21:53:00.000

PidTagReadReceiptRequested (section 2.2.1.29)

0x0029

0x000B (PtypBoolean)

0x01 (TRUE)

PidTagSentMailSvrEID (section 2.2.3.10)

0x6740

0x00FB (PtypServerId)

21 bytes

01 01 00 00 00 00 f0 e7

c1 00 00 00 00 00 00 00

00 00 00 00 00

PidTagIconIndex (section 2.2.1.10)

0x1080

0x0003 (PtypInteger32)

0xFFFFFFFF

PidTagMessageEditorFormat ([MS-OXPROPS] section 2.781)

0x5909

0x0003 (PtypInteger32)

0x00000001 plain text

PidTagPrimarySendAccount (section 2.2.1.64)

0x0E28

0x001F (PtypString)

000000023659R9-A11/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/ CN=recipients/CN=JoeHealy Microsoft Exchange

PidTagNextSendAcct (section 2.2.1.65)

0x0E29

0x001F (PtypString)

000000023659R9-A11/o=First Organization/ou=Exchange Administrative Group (FYDIBOHF23SPDLT)/ CN=recipients/CN=JoeHealy Microsoft Exchange

PidTagMessageLocaleId ([MS-OXCMSG] section 2.2.1.5)

0x3FF1

0x0003 (PtypInteger32)

1033 (en-us)

PidTagReportTag (section 2.2.2.22)

0x0031

0x0102 (PtypBinary)

100 bytes (See the explanation that follows this table.)

The value of the PidTagReportTag property is as follows:

 0000: 50 43 44 46 45 42 30 39-00 01 00 02 00 00 00 00
 0010: 00 00 00 00 00 00 00 00-00 2e 00 00 00 00 00 00
 0020: 00 1a f8 62 55 f6 35 01-4f b0 20 ce 17 75 e8 64
 0030: 0b 01 00 61 2a 7b ab 49-f6 4e 4b 9c 52 db fb 5a
 0040: 53 aa 1c 00 00 00 f0 e7-c1 00 00 10 00 00 00 fd
 0050: 02 6f a5 55 15 2a 41 ab-1f 64 5d 1b da 0c 38 01
 0060: 00 00 00 00

Joe then addresses this e-mail message to Ed Banti as the primary recipient. The client locates Ed Banti's address data from the client's address book and adds Ed Banti's address data to the recipient table of this E-mail object by using the RopModifyRecipients ROP ([MS-OXCROPS] section 2.2.6.5). The values of the RecipientRow elements are listed in the following table.

RecipientRow element

Value

Description

RowID

0x00000001

Row ID number

RecipientType

0x00000001

Primary recipient

DataSize

399

RecipientFlag

0x0651

AddressType.EXCH

DisplayName

XmitSameAsDisplay

StandardPropsUnicode

SimpleDisplayName

DNPrefixLen

0x5A (90)

EX-Address.Type

0x00000000

DT_MAILUSER

EX-Address.EmailAddress

edbanti@example.com

DisplayName

Ed Banti

SimpleDisplayName

Ed Banti

The client adds the following additional properties to the RecipientRow structure.

Property

PropertyID

Type

Value

PidTagObjectType ([MS-OXCPRPT] section 2.2.1.7)

0x0FFE

0x0003 (PtypInteger32)

0x00000006 (MAILUSER)

PidTagDisplayType ([MS-OXOABK] section 2.2.3.11)

0x3900

0x0003 (PtypInteger32)

0x00000000 DT_MAILUSER

PidTagAddressBookDisplayNamePrintable ([MS-OXCMSG] section 2.2.1.30)

0x39FF

0x001F (PtypString)

Ed Banti

PidTagSmtpAddress ([MS-OXOABK] section 2.2.3.21)

0x39FE

0x001F (PtypString)

edbanti@example.com

PidTagSendInternetEncoding ([MS-OXOABK] section 2.2.3.19)

0x3A71

0x0003 (PtypInteger32)

0x00000000

PidTagAccount ([MS-OXOCNTC] section 2.2.1.10.11)

0x3A00

0x001F (PtypString)

edbanti

PidTagDisplayTypeEx ([MS-OXOABK] section 2.2.3.12)

0x3905

0x0003 (PtypInteger32)

0x40000000

PidTagRecipientTrackStatus ([MS-OXOCAL] section 2.2.4.10.2)

0x5FFF

0x0003 (PtypInteger32)

0x00000000

Unspecified property

0x5FDE

0x0003 (PtypInteger32)

0x00000000

PidTagRecipientFlags ([MS-OXOCAL] section 2.2.4.10.1)

0x5FFD

0x0003 (PtypInteger32)

0x00000001

PidTagRecipientDisplayName ([MS-OXPROPS] section 2.890)

0x5FF6

0x001F (PtypString)

Ed Banti

PidTagRecipientEntryId ([MS-OXPROPS] section 2.891)

0x5FF7

0x0102 (PtypBinary)

126 bytes

(see the sample value for the PidTagRecipientEntryId property following this table)

PidTagRecipientOrder ([MS-OXCMSG] section 2.2.1.40)

0x5FDF

0x0003 (PtypInteger32)

0x00000000

The value of the PidTagRecipientEntryId property is as follows:

  
 0000: 00 00 00 00 dc a7 40 c8-c0 42 10 1a b4 b9 08 00
 0010: 2b 2f e1 82 01 00 00 00-00 00 00 00 2f 6f 3d 46
 0020: 69 72 73 74 20 4f 72 67-61 6e 69 7a 61 74 69 6f
 0030: 6e 2f 6f 75 3d 45 78 63-68 61 6e 67 65 20 41 64
 0040: 6d 69 6e 69 73 74 72 61-74 69 76 65 20 47 72 6f
 0050: 75 70 20 28 46 59 44 49-42 4f 48 46 32 33 53 50
 0060: 44 4c 54 29 2f 63 6e 3d-52 65 63 69 70 69 65 6e
 0070: 74 73 2f 63 6e 3d 65 64-62 61 6e 74 69 00

Last, Joe sends the e-mail message. The client sets the following calculated subject properties on the E-mail object based on the subject text on Joe's submitted message by using the RopSetProperties ROP.

Property

PropertyID

Type

Value

PidTagSubjectPrefix (section 2.2.1.60)

0x0003

0x001F (PtypString)

Empty string

PidTagNormalizedSubject ([MS-OXCMSG] section 2.2.1.10)

0x0E1D

0x001F (PtypString)

"Order Form Issue"

The client then sends a RopSubmitMessage ROP request ([MS-OXCROPS] section 2.2.7.1) to ask the server to deliver this e-mail message to Ed Banti and sends a RopRelease ROP request ([MS-OXCROPS] section 2.2.15.3) to release the E-mail object.

For more details about the ROPs used in this example, see [MS-OXCROPS], [MS-OXCMSG], and section 2.2.4 of this document. For more details about a client's offline e-mail address book and recipient (2) address data entry, see [MS-OXOAB] and [MS-OXOABK].

Show:
© 2016 Microsoft