Technical Reference
This section provides a full technical reference point for constructing your Blueprint templates.
1. Format of the BPMessProp ID
2. Message Property Source
3. Formatting Properties
4. Blueprint Item Property Tags
5. Blueprint Ids
1. Format of the BPMessProp ID
As discussed in the tutorials, when Blueprint for Outlook loads your printing template, it parses the content, inserting formatted message properties into elements that have an ID of 'BPMessProp'. This is an example of this:
<span id="BPMessProp">NAME=From</span>
For an overview about the 'BPMessProp' ID, see Tutorial 1. Understanding the Basics
The BPMessProp ID is at the heart of the Blueprint printing engine, and can be defined in any HTML element. (e.g. SPAN, DIV, TD etc.). The text section of the element contains all the information needed to format the text from the message.
Often, you will want fine control over the formatting of properties before they are inserted into the document (formatting over and above that controlled by HTML styles).
In order to provide further formatting instructions, 'named arguments' are used. Any number of named arguments can be supplied in any order; each must be separated using a pipe (|). An example is:
'NAME=FlagStatus|HIDE_TABLE_IF_EMPTY|POSSIBLE_VALUES=0: ,1:Completed,2:Flagged'
2. Message Property Source
The NAME element is the mandatory element which provides the data source of the message property. The format is as follows:
NAME=<name>
The
<name> value can refer to either a named Blueprint property, a custom form User property, an Outlook Object Model DispId or even an internal MAPI property. By default, it is assumed that the
<name> value refers to an named Blueprint property. For a full list of named Blueprint properties, click
here.
In order to allow the NAME property to be used for other property sources, the following named argument is used: PROP_TYPE, and is used by:
PROP_TYPE=<prop_type>
where <prop_type> can be:
| <prop_type> | Description | Usage example |
| ITEM | A property defined through the ItemProperties collection used within the Outlook Object Model. The NAME property will refer to the name of the ItemProperty. * | Contact Address example: NAME=BusinessAddress|PROP_TYPE=ITEM |
| USER | A user property used in custom forms. The NAME property will refer to the name of the custom property | NAME=MyCustomTextBox|PROP_TYPE=USER |
| DISPID | An Outlook Object Model dispid of the current selected Item. The NAME value will be a hex value of the DISPID ** | Subject example: NAME=0x37|PROP_TYPE=DISPID |
| MAPI | An extended MAPI property of the select IMessage. The NAME property will be the full hex MAPI property ** | Subject example: NAME=0x0037001E|PROP_TYPE=MAPI |
* The ITEM property type is only available for use with Microsoft Outlook 2002-2007. To see a full list of property names available, visit Microsoft Outlook Item Properties collection. From this page, it is possible to view the ItemProperty names that can be used for all Outlook item types( e.g. Contact, Task, Appointment).
** For help on determining DISPIDs and MAPI property identifiers used in your messages, a useful utility is OutlookSpy. To download OutlookSpy, visit http://www.dimastr.com/outspy/
3. Formatting Properties
Section 2 described how to define the source of your message property. This section will provide a full list of all the formatting arguments that can be used:
| Named Argument | Comments |
| NAME=<name> | The name of the property. Mandatory. Used in conjunction with PROP_TYPE to define source type. |
| PROP_TYPE=<prop_type> | Source of the property type. See 2. Message Property Source. |
| HIDE_ROW_IF_EMPTY | If the inner text of the HTML element is empty (after formatting), the whole row will be hidden from display. Only to be used within an enclosing table row (<TR>..</TR>) |
| HIDE_TABLE_IF_EMPTY | If the inner text of the HTML element is empty (after formatting), the whole table will be hidden from display. Only to be used within an enclosing table (<TABLE>..</TABLE>) |
| POSSIBLE_VALUES=<value>:<new value>, ... | Provides a list of <value>:<new value> pairs. If the preformatted property matches the <value>, it will be replaced with the <new value>. This can be used to convert numbers to text (e.g. "POSSIBLE_VALUES=1:One,2:Two", but also search for a text <value> for conversion (e.g. "POSSIBLE_VALUES=One:1,Two:2") |
| FORMAT_STRING=<text> | This allows the property value to be inserted inside some text. A '%s' must be inserted in the <text> at the point where the property value should be displayed. e.g 'FORMAT_STRING=Print Time: %s.' |
| UPPERCASE | Converts the formatted text into upper case text |
| LOWERCASE | Converts the formatted text into lower case text |
| VALUE_SEPARATOR=<sep> | Specifies the separator to be used for Recipients, Attachments and Contacts. |
4. Blueprint Item Property Tags
For ease of use, Blueprint has provided a number of supported Property names which can be used without the PROP_TYPE named property:
| Property Name (e.g. NAME=x) | Type | Comments |
| Attachments | Text | List of attachments in the message |
| Body | HTML Body content | Full HTML Message Body |
| From | Text | The recipient the message was sent from |
| To | Text | List of To recipients |
| Cc | Text | List of Cc recipients |
| Bcc | Text | List of Bcc recipients |
| ReceivedBy | Text | The name of the recipient who recieved the message |
| From | Text | The recipient the message was sent from |
| ToFull | Text | List of To recipients including email addresses |
| CcFull | Text | List of Cc recipients including email addresses |
| BccFull | Text | List of Bcc recipients including email addresses |
| ReceivedByFull | Text | The name of the recipient who recieved the message including email addresses |
| Contacts | Text | List of contacts associated with the message |
| CurrentTime | Date | The time when the message is printed |
| SentOn | Date | The time when the message was sent |
| CreationTime | Date | The time when the message was created |
| DeferredDeliveryTime | Date | The time/date the mail message is to be delivered |
| ExpiryTime | Date | The time/date when the message will expire |
| ReceivedTime | Date | The time/date when the message was received |
| Subject | Text | The subject of the message |
| Categories | Text | List of categories associated with the message |
| Sensitivity | Number | Indicates the Sensitivity of the message. Either 0:Normal ,1:Personal, 2:Private, 3:Confidential |
| Importance | Number | Indicates the Importance of the message. Either 0:Low, 1:Normal, 2:High |
| FlagRequest | Text | Indicates the requested action for an e-mail message |
| FlagStatus | Number | Indicates the flag status of the message - Either: 0: No Flag, 1: Flag Complete, 2:Flag Marked |
| Size | Text | The size of the message |
| DeliveryReportRequested | True/False | Whether a delivery report was requested for this message |
| ReadReceiptRequested | True/False | Whether a read receipt was requested for this message |
| BillingInformation | Text | Billing Information associated with the message |
| Companies | Text | The Companies associated with the message |
| Mileage | Text | The Milage associated with the message |
Adding the Contact Picture
When designing a Contact based template (Memo or Multi-item style) or referencing a Contact item from your message template( e.g. BPFromProp, BPContactProp), you can add the Contact image associated with contact.
| Property Name (e.g. NAME=x) | Type | Comments |
| ContactPicture | Picture | Adds the contact picture associated with the current Contact item |
5. Blueprint Ids
This section provides a definitive list of all the ids values which Blueprint for Outlook uses to manage the contents of the template:
Standard Blueprint Ids
The ids within this section can be used anywhere within both Memo and Multi Item style templates
| Blueprint Id | Comments |
| BPHeader | The HTML under this element define the header of each page within a printout. This item can only appear once |
| BPFooter | The HTML under this element define the footer of each page within a printout. This item can only appear once |
| BPPageNo | The text of this element will be replaced by the current page number |
| BPPageTotal | THe text of this element will be replaced with the total number of pages in the printout |
Item Blueprint Ids
The ids within this section can be used within both Memo and Multi Item style templates. However, when they are used within Multi Item style templates, the id should only be used within the BPFolderListItem section
| Blueprint Id | Comments |
| BPMessProp | The standard id to be used for extracting properties from a current Outlook message / item. |
| BPFromProp | This tag is similar to BPMessProp, but will extract a property from the Sender Contact. Blueprint will determine whether a Contact item exists which matches the email address of the Sender. If this exists, properties will be extracted from this contact.
Note. Support for BPFromProp was introduced in Blueprint for Outlook 2.2 |
| BPContactList | This defines the start of a custom contact list. This provides support for displaying all the contacts associated with the item. |
| BPContactListItem | Only used in conjunction with the BPContactList id. The HTML under this item is repeated for each contact in the contact list, and can be used to present futher properties for the contact. |
| BPContactListSeparator | Optional. Only used in conjunction with the BPContactList id. The HTML under this item is used as a separator between each contact |
| BPContactProp | This id is similar to BPMessProp, but will extract a property from the current contact. Only to be used within the BPContactListItem section |
Multi-Item Blueprint Ids
The ids within this section can only be used within Multi Item style templates. For more information on Multi Item templates, see Tutorial 5. Creating Multi Item Styles
| Blueprint Id | Comments |
| BPFolderList | This id is only used within 'Multi Item templates and defines the start of a multi-item list. |
| BPFolderListItem | Only used in conjunction with the BPFolderList id. The HTML under this item is repeated for each item in the multi-item list |
| BPFolderListSeparator | Optional. Only used in conjunction with the BPFolderList id. The HTML under this item is used as a separator between each contact |
| BPFolderProp | This id is similar to BPMessProp, but will extract a property from the current folder |