User:Peterl/Outlook Redemption

Outlook Redemption is a toolset (COM object) for programmers of the Microsoft Outlook email program. It is used by tens of thousands of Microsoft Outlook programmers. Many Microsoft Outlook programming books refer to Outlook Redemption.

Redemption has two purposes:
 * To allow programmatic control over Microsoft Outlook, without the interruption of the Object Model Guard.
 * To give access to certain parts of the Microsoft Outlook Object Model that is not normally available. For example, Outlook users who want to be able to list out the internet headers, from the emails they receive will find that most of the header information is not accessible.

Outlook Redemption is a COM object, so is accessible to any programming language (C#, VB, VBA, etc).

The Object Model Guard
Microsoft noticed a particular problem with Outlook version 98, that because of the security design that computer virus writers were able to easily exploit the product to send mass emails (spam).

To overcome this possible exploit, Microsoft added a patch known as the 'Outlook Object Model Guard'. This patch was included with Service Pack 2 of MS Office 98/2000 and Office 2002/2003. The patch changed Outlook to prompt the user for any program-initiated event, including accessing the address book or sending an email.

Programmer response to the Object Model Guard
Many programmers and users considered this approach a significant annoyance.

Outlook Redemption provides an alternate way for Outlook programmers to access Outlook's object model, and therefore increase Outlook's functionality without the hindrance of the Security patch.

The use of Redemption requires only minimal changes to a program.

The Object Model Guard is not an issue in Office 2007, as the security patch/prompting approach is no longer used. Instead, Office 2007 uses the approach of the 'Trust Centre'.

Extended MAPI
The other reason to use Outlook Redemption is to access parts of Outlook that the Outlook object model does not expose. For example, in straight Outlook an email sender's real email address is hidden and is not accessible. Redemption provides the objects to access a sender's real email address.

Some other extra functionality available includes:


 * Access to 'normal' internet headers for an email message.


 * Access the Rich Text Format (RTF) body of any Microsoft Outlook item (not just email messages).


 * Data can be imported and exported in a great many formats: .MSG, .EML (RFC822), .TNEF, .TXT, .HTML, and vCard are all supported.


 * MAPI profiles, accounts and stores can be programmatically accessed and manipulated.


 * Message attachments can be accessed as data objects (arrays or strings) without needing to be extracted and saved as data files.


 * Redemption Data Objects (RDO), a library used to replace Collaboration Data Objects (CDO) and expand on their functionality. For instance, RDO lets you access Exchange Server personal stores (.PST files), where CDO does not.

Redemption adds new objects to expose this data, making programming Outlook easier and more productive.

Performance
There are some reports that the use of Redemption can increase the execution speed of certain automated tasks.