Properties can be set, retrieved, and deleted. Properties can also be copied from one object to another. A client can copy just a select few properties or copy all properties. Some properties on Message objects and Attachment objects can be opened as a stream. With an open stream, the client can seek, read, write, and commit data to the stream.
All operations on a property require that the property is specified by a property tag, which comprises the property ID and the property type. A property is either a tagged property, which has a hard-coded property ID, or a named property, which has a dynamic property ID assigned by the server. A client can create custom properties by defining its own named properties. A client can obtain a property ID for a named property by querying the server for the named property-to-property ID mapping. A query for the reverse mapping (property ID-to-named property) allows the client to obtain the named property from the property ID.
There are two different models for saving changes to properties. Changes to properties on Folder objects and Logon objects are saved immediately, whereas changes to properties on Message objects and Attachment objects are not saved until the client explicitly saves the object.