Description of the developer-related e-mail security features in Outlook 2002 (290500)



The information in this article applies to:

  • Microsoft Outlook 2002

This article was previously published under Q290500
For a Microsoft Outlook 98 version of this article, see 262700.

For a Microsoft Outlook 2000 version of this article, see 262701.

SUMMARY

This article summarizes what developers need to know about the Outlook 2002 e-mail security features and how those features can affect custom solutions.

Important This article describes security features in Outlook 2002, in Outlook 2002 Service Pack 1, and in Outlook 2002 Service Pack 2. Additional features were added to Outlook 2002 Service Pack 3. For more information about those changes, click the following article number to view the article in the Microsoft Knowledge Base:

838871 Description of the developer-related security changes in Outlook 2002 Service Pack 3 (S838871)

MORE INFORMATION

Overview

Important In addition to the information in this article, you should be familiar with the general Outlook 2002 e-mail security features. Information about the Outlook e-mail security features is provided in Help. On the Help menu, click Microsoft Outlook Help. In the contents, click Security and Encryption. For more information about how the security features affect end-users, click the following article number to view the article in the Microsoft Knowledge Base:

290498 You receive warning messages when you use a third-party add-in or custom solution in Outlook 2002

Important This article describes the default behavior of Outlook 2002 with regard to various restrictions placed on programming interfaces. If you wish to avoid these restrictions, administrators can configure client computers so that they do not contain all of these restrictions. As a developer, you need to be familiar with the administrative options that are available with these security features. For more information about how to override these restrictions, click the following article number to view the article in the Microsoft Knowledge Base:

290499 Administrator information about e-mail security features

Outlook 2002 includes the same type of security features that were previously released as the Microsoft Outlook 98 and Microsoft Outlook 2000 E-mail Security Updates. These features provide Outlook with additional levels of protection against malicious e-mail messages but may adversely affect solutions that you build by using developer features that are included in Outlook and other messaging technologies or Application Programming Interfaces (APIs). In some cases, solutions may not function at all; in other cases, solutions may result in a warning message that interrupts your solution when you try to run it.

The security features change Outlook and general messaging functionality in the following areas:
  • General attachment behavior
  • The Outlook object model
  • The Collaboration Data Objects (CDO) 1.21s object model
  • Simple Messaging Application Programming Interface, or Simple MAPI
  • Other areas in Outlook that are related to security, such as code embedded in HTML-based mail messages

Outlook object model security features

Attachments

Attachments with Level 1, or "unsafe," file extensions are not accessible in the Outlook object model, specifically:
  • The Attachments collection in the object model is unaware of unsafe attachments.
  • If you try to send mail programmatically with one of these attachments, the mail is not sent. If the program is written in the C or C++ programming languages, you receive the MAPI_E_CANCELLED return code.
  • If you attempt to open an "unsafe" file system object (or "freedoc" file) by using the Outlook object model, you receive the E_FAIL return code in the C or C++ programming languages. In previous versions of Outlook, you could open an "unsafe" file system object by using the Display method in the Outlook object model.

Item.Send

When you run a program that uses the Outlook object model to call the Send method, you receive a warning message. This warning message tells you that a program is trying to send mail on your behalf and asks if you want to allow the message to be sent. The warning message contains both a Yes and a No button; however, the Yes button is not available until five seconds have passed since the warning message appeared. You can dismiss the warning message immediately if you click No. When you click No, the Send method returns an E_FAIL error in the C or C++ programming languages.

Accessing address books and recipients

If a program tries to reference any type of recipient information by using the Outlook object model, a dialog box is displayed that asks you to confirm access to this information. You can allow access to the Address Book or recipient information for up to ten minutes after you receive the dialog box. This allows features, such as mobile device synchronization, to be completed. If you decide not to allow access to your Address Book or recipient information, you receive the E_FAIL return code for all of these messages in the C or C++ programming languages.

You receive the confirmation dialog box when a solution tries to programmatically access the following features of the Outlook object model:
  • The AddressEntries collection or any AddressEntry object.
  • The Recipients collection or any Recipient object.
  • The following properties of a ContactItem object:

    Email1.Address
    Email1.AddressType
    Email1.DisplayName
    Email1.EntryID
    Email2.Address
    Email2.AddressType
    Email2.DisplayName
    Email2.EntryID
    Email3.Address
    Email3.AddressType
    Email3.DisplayName
    Email3.EntryID
    NetMeetingAlias
    ReferredBy

  • The following properties of a MailItem object:

    SentOnBehalfOfName
    SenderName
    ReceivedByName
    ReceivedOnBehalfOfName
    ReplyRecipientNames
    To
    Cc
    Bcc

  • The following properties of a AppointmentItem object:

    Organizer
    RequiredAttendees
    OptionalAttendees
    Resources
    NetMeetingOrganizerAlias

  • The following properties of a TaskItem object:

    ContactNames
    Contacts
    Delegator
    Owner
    StatusUpdateRecipients
    StatusOnCompletionRecipients

  • The GetMember method of a DistListItem object.
  • The ContactNames property of a JournalItem object.
  • The SenderName property of a MeetingItem object.
  • The SenderName property of a PostItem object.
  • The GetRecipientFromID property of a Namespace object.
  • The Execute method of an Action object.
  • The Formula property of a UserProperty object.

Item.SaveAs

When you use the SaveAs method to save items to the file system, you receive an "address book" warning message. This includes all types of items whether or not the items have attachments or active content. This change has been made so that someone cannot programmatically save items to a file, and then parse the file to retrieve e-mail addresses.

Send CommandBar button

It is no longer possible to use the Execute method to programmatically click the Send button on the Outlook toolbar. Although this is not commonly done in Outlook solutions, this change has been made to prevent malicious intent. You receive the E_FAIL return code for all of these messages in the C or C++ programming languages.

SendKeys

Outlook does not allow access to certain dialog boxes by using the Microsoft Visual Basic or Microsoft Visual Basic for Applications SendKeys command. This prevents malicious programs from automatically dismissing the warning messages and circumventing the new security features.

VBScript in unpublished forms no longer runs

When you create a custom Outlook form, you can choose to directly embed Visual Basic Scripting Edition (VBScript) within an item. You may do this if other users cannot access a published form. These types of forms are called "one-off" forms. For more information about one-off forms, click the following article number to view the article in the Microsoft Knowledge Base:

290657 Description of form definitions and one-off forms in Outlook 2002

When you open one of these items in a version of Outlook that does not have the Outlook E-mail Security Update applied to it, Outlook displays a security warning message that asks if you want to enable or disable the code in the form. In Outlook 2002, the code is disabled, and you cannot activate it.

CDO 1.21s security features

The CDO 1.21 object model has been changed to reflect the changes made to the Outlook object model and Simple MAPI. The version number of CDO has been updated to 1.21s to reflect these security features. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

295302 Summary of Collaboration Data Objects (CDO) 1.21s e-mail security features in Outlook 2002

For more information about the CDO object model, see the following article on the Microsoft Web site:

Simple MAPI security features

When Outlook is installed on a computer as the default Simple MAPI client, Outlook processes requests that are made by using Simple MAPI calls. Therefore, when you install Outlook 2002, Simple MAPI calls are handled by Outlook and those calls provide the same level of protection as the Outlook object model. By default, if you use many Simple MAPI functions, you receive a warning message that says a program is trying to either access recipient information or send mail on your behalf.

The following list describes how Outlook responds to Simple MAPI calls.

Simple MAPI call   Behavior if handled by Outlook
----------------------------------------------------------------
MAPIAddress        OK
MAPIDeleteMail     OK
MAPIDetails        OK
MAPIFindNext       OK
MAPIFreeBuffer     OK
MAPILogoff         OK
MAPILogon          OK
MAPIReadMail       Prompt
MAPIResolveName    Prompt
MAPISaveMail       OK
MAPISendDocuments  OK
MAPISendMail       OK with the MAPI_DIALOG argument, otherwise prompt
					

For more information about the Simple MAPI calls, see the following article on the Microsoft Web site:

Office applications are reset to high security

To help protect against harmful macro viruses that may be in Microsoft Office documents, Office XP defaults to putting programs in "high security" mode. This includes all Office XP programs that support Visual Basic for Applications, except Microsoft Access, because Microsoft Access has no equivalent settings for macro security. As a result, all Access document types are included in the list of unsafe file extensions that cannot be accessed.

Outlook and HTML mail

The following information is an excerpt from the Microsoft Outlook Help:

To protect against viruses that might be contained in HTML messages you receive, scripts won't run and ActiveX controls will be deactivated regardless of your security zone setting. By default, the Microsoft Outlook security zone is set to Restricted Site.

Avoiding the security features

The e-mail security features affect all custom solutions that use the Outlook object model, CDO, or Simple MAPI, even if they are digitally signed. This includes the following:

  • Outlook custom forms that are published to any folder or forms library, including the Organizational Forms Library
  • Outlook COM Add-ins
  • Outlook Visual Basic for Applications
  • Any other type of development project that uses the Outlook object model, CDO or Simple MAPI
As a developer, you have various options when you try to avoid the security features. To summarize your typical options depending on where you are developing your solution:
  • Outlook custom forms: Publish forms so that they are not one-off forms, or use the administrator features to enable VBScript code in one-off forms to run.
  • Outlook Visual Basic for Applications: Use the administrator features to disable object model restrictions, or convert your Visual Basic for Applications code to a COM Add-in, and then register it by using the administrator form.
  • COM add-ins: COM add-ins can be trusted if an administrator registers them by using the administrator form. However, when you are using a COM add-in, only the Outlook object model is exempted; the CDO object model will still generate warnings.

    You cannot trust COM add-ins in Outlook 2000. This was a feature that was added to the Outlook 2002 version of the administrator form.
  • Automating the Outlook or CDO object models: Use the administrator features to disable object model restrictions.
If feasible, you may want to consider redesigning your solution so that it runs on a server instead of a client. Server-based APIs are not protected by these e-mail security features.

You may also want to consider using a different messaging API or library:

REFERENCES

For more information about available resources and answers to commonly asked questions about Microsoft Outlook solutions, click the following article number to view the article in the Microsoft Knowledge Base:

287530 Frequently asked questions about custom forms and Outlook solutions


Modification Type:MinorLast Reviewed:7/28/2006
Keywords:kbemail kbSecurity kbhowto KB290500