Le Café Central de

                    ... Deva blogs!!

  • Le Café Central de DeVa

    How to access a particular mailbox using Microsoft Exchange web services ?


    In this article, we will see how we can access a particular mailbox using Microsoft Exchange web services ?

    The DistinguishedFolderId element identifies Microsoft Exchange Server 2007 folders that can be referenced by name. The DistinguishedFolderId class has an optional Mailbox property on it that allows you to indicate which mailbox you are accessing.

       1:  <DistinguishedFolderId Id="" ChangeKey="">
       2:     <Mailbox/>
       3:  </DistinguishedFolderId>

    Note: A DistinguishedFolderId resolves to a FolderId. The schema that describes this element is located in the EWS virtual directory of the computer that is running Microsoft Exchange Server 2007 that has the Client Access server role installed.

  • Le Café Central de DeVa

    Screencast: Outlook Context Menus and Creating a Meeting from an Email


    Please view this wonderful Screencast from channel9, which easily we can able to create our own menu option to the context menu in Outlook.

    Per jwiese "...would you like to add your own menu option to the context menu in Outlook?  How about turning an email into a new meeting request without having to type in all the attendees or the body and subject?  Well, in this Screencast I'll show you how to add to the context menu and generate a meeting request that includes the email's recipients, subject and body in the meeting details..."

  • Le Café Central de DeVa

    Exchange Server 2007 &amp; Domain Security


    Exchange 2007 includes a new feature set that is named "Domain Security." Domain Security refers to the set of functionality in Exchange 2007 and Outlook 2007 that provides a relatively low-cost alternative to S/MIME or other message-level security solutions.

    The purpose of the Domain Security feature set is to provide administrators a way to manage secured message paths over the Internet with business partners. After these secured message paths are configured, messages that have successfully traveled over the secured path from an authenticated sender are displayed to users as "Domain Secured" in the Outlook and Outlook Web Access interface.

    Domain Security uses Transport Layer Security (TLS) with mutual authentication to provide session-based authentication and encryption. TLS with mutual authentication differs from TLS as it is usually implemented. Typically, when TLS is implemented, the client verifies that the connection securely connects to the intended server by validating the server’s certificate. This is received as part of TLS negotiation. In this scenario, the client authenticates the server before the client transmits data. However, the server doesn't authenticate the session with the client.

    With mutual TLS authentication, each server verifies the connection with the other server by validating a certificate that is provided by that other server. In this scenario, where messages are received from external domains over verified connections in an Exchange 2007 environment, Outlook 2007 will display a "Domain Secured" icon.

    For more information about how to plan for and deploy Domain Security in your organization, see White Paper: Domain Security in Exchange 2007


  • Le Café Central de DeVa

    Outlook Web Access and Exchange 2007, Exchange 2003, and Exchange 2000 Coexistence


    Please find this article which explains how Microsoft Outlook Web Access works in Exchange organizations that include computers that are running one or more versions of Microsoft Exchange that were released earlier than Microsoft Exchange Server 2007. These earlier versions can include Microsoft Exchange Server 2003 and Microsoft Exchange 2000 Server. You can use this information to plan a successful coexistence strategy. You can also use it to complete a successful migration to Exchange 2007.

  • Le Café Central de DeVa

    Web Service : Passing data to and from Webservice & SOAP header


    SOAP headers offer a method for passing data to and from an XML Web service method if the data is not directly related to the XML Web service method's primary functionality.

    For instance, an XML Web service might contain several XML Web service methods that each require a custom authentication scheme. Instead of adding parameters to each XML Web service method for the custom authentication scheme, a SoapHeaderAttribute, referring to a class deriving from SoapHeader, can be applied to each XML Web service method. The implementation for the class deriving from SoapHeader handles the custom authentication scheme.

    In this manner, the XML Web service method implements only the functionality specific to it and adds additional functionality using a SOAP header.

    Reference: http://msdn.microsoft.com/en-us/library/system.web.services.protocols.soapheader.aspx

  • Le Café Central de DeVa

    Outlook Programming Series # 12 : How to automate different versions of Outlook using VC++ ?


    You can automate Outlook 2000, 2002, and 2003 with one small change.

    The Outlook 97 Namespace class member has changed to _Namespace in Outlook 2000, 2002, and 2003.

    To use the code above for automating Outlook 2000, 2002, and 2003 change this line:

    Namespace olNS(olApp.GetNames("MAPI"));


    _Namespace olNS(olApp.GetNames("MAPI"));

  • Le Café Central de DeVa

    How to get date & time when the message was received by Exchange server ?


    One of my customer wanted to get the date and time when the message was received by Microsoft Exchange?

    • In Exchange Server, we have the OriginationTime property.
    • It indicates the date and time, in coordinated universal time (UTC), when the message was received by Microsoft Exchange.
    • The OriginationTime property is read-only.

    For example, this could be the time the message was received from the Internet via SMTP, or the time a user clicked the Send button in an e-mail client application.

    The OriginationTime property appears on instances of the \\COMPUTERNAME\ROOT\MicrosoftExchangeV2:Exchange_MessageTrackingEntry class.

    Please find the following example (VBScript) shows how to retrieve a list of Exchange_MessageTrackingEntry instances, and how to retrieve the OriginationTime property.

  • Le Café Central de DeVa

    Nutshell: Automation using # imports with Exchange Server environment is good or bad?


    Automation using # imports ?

    As you know, Automation (OLE Automation), the technology that allows you to take advantage of an existing program's functionality and incorporate it into your own applications. This technology can greatly simplify and speed up your development.

    # imports:

    In C/C++ preprocessor, we have a directive called "#imports" is available. Using this #import directive allows you to automatically "import" the type information contained in the component type library to your project.

    As you know we can use the #import to do the automation(OLE Automation). The #import, a new directive that became available with Visual C++; it creates VC++ "smart pointers" from a specified type library. It is very powerful, but often not recommended because of reference- counting problems that typically occur when used with the Microsoft Office applications.

    If you use Visual C++ (especially 5.0 or later), you can take advantage of its native Component Object Model (COM) support through the #import statement. The #import creates two header files that reconstruct the type library contents in C++ source code. The primary header file is similar to that produced by the Microsoft Interface Definition Language (MIDL) compiler, but with additional compiler-generated code and data.


    • Usually, the files generated have the same name as the component dynamic-link library (DLL) with the extensions .tlh and .tli.
    • Microsoft ActiveX Data Objects (ADO) type information is required, so you need to include it as well.
    • This directive is used to incorporate information from a type library.
    • The content of the type library is converted into C++ classes, mostly describing the COM interfaces.
    • Using this statement allows you to automatically add type information contained in a type library into your project.

    Need to determine:

    You must determine which of the dependency comments are not otherwise provided for by system headers and then provide an #import directive at some point before the #import directive of the dependent type library to resolve the errors.

    Using in Exchange Server environment:

    When we talk about how we can make use of # imports in our exchange environment, i found this wonderful article which gives reference(s) or code snippets how we can make use of Collaboration Data objects (CDO).

    Note: When using the #import statement, make sure to import the ActiveX Data Objects type information before the Microsoft CDO for Windows 2000 type information.

    Some important points to remember: 

    • The application that we're trying to automate stays in memory even after the program is finished. This may because if we have forgotten to release an acquired interface and we need to track it down.
    • If you are dedicated to using MFC's wrapper classes or Visual C++'s native COM support (#import), either you may still have to delve into the guts of IDispatch and COM Automation in order to work around common bugs and limitations with these frameworks.
    • If you're using #import, it is very likely you could be running into one of the reference-counting bugs associated with it.
    • Often times the bugs can be worked around, but usually it is preferred to use one of the other Automation methods.
    • #import doesn't work very well with the Office applications, because its type libraries and use are fairly complex.
    • Also, such reference counting problems are hard to track down because a lot of the interface-level COM calls are behind-the-scenes when using #import.

    Some known issues to be aware of:

    For more information, see the Knowledge Base article "#import Wrapper Methods May Cause Access Violation" (Q242527) or "Compiler Errors When You Use #import with XML" (Q269194). You can find Knowledge Base articles on the MSDN Library media or at http://support.microsoft.com/support/.

    My take, yes, i do agree that even without making use of # imports we can do more. Take this simple example which doesn't uses the # imports directive, instead it just uses the C++ to build an automated console application straightly. So it's up to the programmer who wants to create their program or it depends on whether he wants to make use of # imports to take advantage of native Component object model or not.

  • Le Café Central de DeVa

    EWS Programming # 1 : Creating my first Exchange Web Services client application in C#.Net


    Please find my first web service client that i tried couple of months earlier that creates an e-mail item in the Sent Items folder. You can use Microsoft Visual Studio 2005 to create a simple Exchange Web Services client application like this.

       1:  using System;
       2:  using System.Net;
       3:  using System.Security.Cryptography.X509Certificates;
       4:  using System.Net.Security;
       6:  // The ExchangeWebServices namespace was created by using Visual Studio // 2005 and the Add Web Reference wizard.
       7:  using ExchangeWebServices;
       9:  namespace Devas_First_WebService
      10:  {
      11:      partial class Program
      12:      {
      13:          static void Main(string[] args)
      14:          {
      15:              ServicePointManager.ServerCertificateValidationCallback =
      16:              delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
      17:              {
      18:                  // Replace this line with code to validate server 
      19:  // certificate.
      20:                  return true;
      21:              };
      23:              // Identify the service binding and the user.
      24:              ExchangeServiceBinding esb = new ExchangeServiceBinding();
      25:          // Provide the Network credentials - username, password, domain
      26:              esb.Credentials = new NetworkCredential("<username>", "<password>", "<domain>");
      27:          // Provide the Exchange Web Service (URL)
      28:              esb.Url = @"https://<FQDN>/EWS/Exchange.asmx";
      30:              // Create the CreateItem request.
      31:              CreateItemType createEmailRequest = new CreateItemType();
      33:              // Specifiy how the e-mail will be handled.
      34:              createEmailRequest.MessageDisposition = MessageDispositionType.SaveOnly;
      35:              createEmailRequest.MessageDispositionSpecified = true;
      37:              // Specify the location of sent items. 
      38:              createEmailRequest.SavedItemFolderId = new TargetFolderIdType();
      39:              DistinguishedFolderIdType sentitems = new DistinguishedFolderIdType();
      40:              sentitems.Id = DistinguishedFolderIdNameType.sentitems;
      41:              createEmailRequest.SavedItemFolderId.Item = sentitems;
      43:              // Create the array of items.
      44:              createEmailRequest.Items = new NonEmptyArrayOfAllItemsType();
      46:              // Create a single e-mail message.
      47:              MessageType message = new MessageType();
      48:              message.Subject = "Daily Report";
      49:              message.Body = new BodyType();
      50:              message.Body.BodyType1 = BodyTypeType.Text;
      51:              message.Body.Value = "(1) Handled customer issues, (2) Saved the world.";
      52:              message.Sender = new SingleRecipientType();
      53:              message.Sender.Item = new EmailAddressType();
      54:              message.Sender.Item.EmailAddress = "user1@example.com";
      55:              message.ToRecipients = new EmailAddressType[1];
      56:              message.ToRecipients[0] = new EmailAddressType();
      57:              message.ToRecipients[0].EmailAddress = "user2@example.com";
      58:              message.Sensitivity = SensitivityChoicesType.Normal;
      60:              // Add the message to the array of items to be created.
      61:              createEmailRequest.Items.Items = new ItemType[1];
      62:              createEmailRequest.Items.Items[0] = message;
      64:              try
      65:              {
      66:                  // Send a CreateItem request and get the CreateItem 
      67:  // response.
      68:                  CreateItemResponseType createItemResponse = esb.CreateItem(createEmailRequest);
      69:                  ArrayOfResponseMessagesType responses = createItemResponse.ResponseMessages;
      70:                  ResponseMessageType[] responseMessages = responses.Items;
      72:                  // Access the response messages.
      73:                  foreach (ResponseMessageType respMsg in responseMessages)
      74:                  {
      75:                      if (respMsg.ResponseClass == ResponseClassType.Error)
      76:                      {
      77:                          throw new Exception("Error: " + respMsg.MessageText);
      78:                      }
      79:                      else if (respMsg.ResponseClass == ResponseClassType.Warning)
      80:                      {
      81:                          throw new Exception("Warning: " + respMsg.MessageText);
      82:                      }
      84:                      // Check to determine whether the response message is the correct type.
      85:                      if (respMsg is ItemInfoResponseMessageType)
      86:                      {
      87:                          ItemInfoResponseMessageType createItemResp = (respMsg as ItemInfoResponseMessageType);
      88:                          ArrayOfRealItemsType aorit = createItemResp.Items;
      90:                          foreach (ItemType item in aorit.Items)
      91:                          {
      92:                              if (item is MessageType)
      93:                              {
      94:                                  MessageType myMessage = (item as MessageType);
      95:                                  Console.WriteLine("Created item: " + myMessage.ItemId.Id);
      96:                                  Console.ReadLine();
      97:                              }
      98:                              // If needed add the logic to check and cast for all other types.
      99:                          }
     100:                      }
     101:                  }
     102:              }
     103:              catch (Exception ex)
     104:              {
     105:                  Console.WriteLine(ex.Message);
     106:                  Console.ReadLine();
     107:              }
     108:          }
     109:      }
     110:  }
    Reference: Creating an Exchange Web Services Client Application
  • Le Café Central de DeVa

    Microsoft Visual Studio 2005 & ASP.Net 2.0 Web site : How to create Internet Calendar appointment


    Please find the following MSDN article which helps us to make use of Microsoft Visual Studio 2005 to create an ASP.NET 2.0 Web site. It can create and send an Internet Calendar appointment to add to a Microsoft Office Outlook 2007 calendar.

    Internet Calendars are calendars that can be shared through the Internet. Internet Calendars are based on a global Internet standard that allows the exchange of calendar information, regardless of the application that is used to create or view the information. Internet Calendars use the iCalendar format and the .ics file name extension.

    This Visual How-to article uses Microsoft Visual Studio 2005 to create an ASP.NET 2.0 Web site that can create and send an Internet Calendar appointment that can be added to a Microsoft Office Outlook 2007 calendar.

    Also you can view it from the following link.

  • Le Café Central de DeVa

    Video: Microsoft Office Outlook Web Access online training


    Have a look at Online training/demo how to work with Microsoft Office Outlook Web Access 2007 online training.


    It starts from the Introduction, Mail, Calendar, Contacts, Tasks, Documents, options and about OWA light. Just need to go and select the appropriate options in order to see how to make use of the features available with Outlook Web Access.

    Happy training !!

  • Le Café Central de DeVa

    Synchronization : Exchange Server & Outlook


    Exchange Server 2003 and later versions of Exchange Server provide support for certain Outlook features, and Office Outlook 2007 works better with Exchange Server 2003 or later in several ways for other features. Several of these features were introduced in Outlook 2003—most notably for synchronization processing, user synchronization status reports, and junk e-mail filtering. Instant Search and automatic Exchange server discoverability are new in Office Outlook 2007.

    Synchronization between Outlook & Exchange Server:

    Synchronization processing between Outlook and Exchange is enhanced in a number of ways, starting in Outlook 2003. For example, data exchanged between the Outlook client and Exchange Server 2003 servers is compressed, and the data buffer size is larger. In addition, the buffers are packed, so more compressed data is included in each buffer. With these features, more data can be transferred with fewer server calls. This is especially beneficial when users are synchronizing across networks that charge by the byte of data that is transmitted. When large information sets are downloaded—for example, when users update their mailboxes after they have been on vacation—cost can be significantly lowered and the transaction can be shortened with these improvements.

    Better status information about Cached Exchange Mode:

    Another feature that users will notice is better status information about Cached Exchange Mode synchronization. With Exchange Server 2003 or later, the Outlook status bar shows detailed information about synchronization, such as:

    • How many bytes have not been downloaded for the current folder

    • How many items have not been downloaded in the current folder

    • Approximately how long it will be until the current folder is synchronized

    • Folder status, such as Up to Date and Last updated at date and time.

    When used with latest Exchange Server:

    When it is used with Exchange Server 2003 or later, the Headers Only mode in Outlook provides a 256-byte plain text preview that includes part of the message body, rather than showing just the message header information. This message preview can help remote users to make better decisions about whether to download a whole message—which, for example, might include a large attachment.

    When used with latest Outlook & Exchange Server:

    Using Outlook with Exchange Server 2003 or later also helps to provide a better experience for users in filtering junk e-mail messages. The Junk E-mail Filter in Outlook provides some support for Outlook users with Cached Exchange Mode on versions of Exchange Server earlier than Exchange Server 2003. The experience is much improved with Exchange Server 2003 or later.

    New features of Outlook 2007 & Exchange Server 2007:
    Several features that are new in Office Outlook 2007 also work better with Exchange 2007.

    • Instant Search works better with Exchange 2007 when you use Outlook in Online mode with a mailbox server, because Outlook can use the index on Exchange Server 2007 for searching. To enable Instant Search when you use Outlook with earlier versions of Exchange, you must configure Outlook to index user mailboxes for each Exchange client. This extra step is required because indexing in Outlook on the user's computer cannot be fully optimized, unlike the server indexing service that is implemented for Exchange Server 2007.
    • If users are configured to use Cached Exchange Mode, Office Outlook 2007 indexes the search locally, regardless of the Exchange server version.
    • In addition, Office Outlook 2007 automatically detects the user's Exchange server with Exchange Server 2007.
    • Automatic detection is also enabled under the following circumstances for earlier versions of Exchange: when the user's computer is joined to a domain and when Exchange is in the same domain as the user account.
  • Le Café Central de DeVa

    Troubleshooting: Exchange environment with Event viewer


    There are quite number of tools available to find the issues with Exchange Server environment. Here we’re going to view about “Event Viewer”. Interestingly Event viewer is it’s not directly meant nor designed for Exchange server, its designed for Windows OS environment.

    So what can we get in the Event viewer?

    Using the event logs in Event Viewer, we can gather information about hardware, software, and system problems, and you can monitor Windows operating system security events. In Event Viewer, both the application log and the system log contain errors, warnings, and informational events that are related to the operation of Exchange Server, the SMTP service, and other applications.

    What else we can get?

    You can use Event Viewer to obtain information about service failures, replication errors in the Active Directory directory service, and warnings about system resources such as virtual memory and disk space. Use Event Viewer to view and manage event logs; obtain information about hardware, software, and system problems that must be resolved; and identify trends that require future action.

    Event Viewer maintains logs about application, security, and system events on your computer. Both Microsoft Exchange Server and Microsoft Windows report warnings and error conditions to the event logs. Therefore, make sure that you review event logs daily.

    How to identify the issues in Event Viewer?

    To identify the cause of message flow issues, carefully review the data that is contained in the application log and system log. Use the following procedure to view errors, warnings, and informational events in the application log.

    Types of Logs Found in Event Viewer

    Microsoft Windows Server 2003, Windows XP, Windows 2000 Server, and Windows NT record events in three kinds of logs:

    • Application log   The Application log contains events logged by applications or programs. For example, a database program might record a file error in the Application log. The program developer decides which events to record.
    • System log   The System log contains events logged by the Windows operating system components. For example, the failure of a driver or other system component to load during startup is recorded in the System log. The event types logged by system components are predetermined by the Windows operating system.
    • Security log   The Security log can record security events such as valid and invalid logon attempts as well as events related to resource use, such as creating, opening, or deleting files. An administrator can specify what events are recorded in the Security log. For example, if you have enabled logon auditing, attempts to log on to the system are recorded in the Security log.

    Servers running Windows Server 2003 and Windows 2000 Server that are domain controllers might have the following additional logs in Event Viewer:

    • Directory Service log   Windows Server 2003 and Windows 2000 Server directory service logs events in the Directory Service log. This includes any information regarding the Active Directory® directory service and Active Directory database maintenance.
    • File Replication Service log   File Replication Service (FRS) logs its events in this log. This service is used for replication of files, such as domain policies, between domain controllers.
    • DNS Server service log   This log includes events related to the Domain Name System (DNS) Server service running on Windows Server 2003 and Windows 2000 Server. This will show only on DNS servers running Windows Server 2003 and Windows 2000 Server.

    Types of Events Logged

    The icon on the left side of the Event Viewer screen describes the classification of the event by the Windows operating system. Event Viewer displays these types of events:

    • Error   A significant problem, such as loss of data or loss of functionality. For example, if a service fails to load during startup, an error will be logged.
    • Warning   An event that is not necessarily significant, but may indicate a possible future problem. For example, when disk space is low, a warning will be logged.
    • Information   An event that describes the successful operation of an application, driver, or service. For example, when a network driver loads successfully, an information event will be logged.
    • Success Audit   An audited security access attempt that succeeds. For example, a user's successful attempt to log on to the system will be logged as a Success Audit event.
    • Failure Audit   An audited security access attempt that fails. For example, if a user tries to access a network drive and fails, the attempt will be logged as a Failure Audit event.

    What are the main event components of the Event viewer?

    The main event components are as follows:

    • Source   The software that logged the event, which can be either an application name, such as Microsoft SQL Server™, or a component of the system or of a large application, such as MSExchangeIS, which is the Microsoft Exchange Information Store service.
    • Category   A classification of the event by the event source. For example, the security categories include Logon and Logoff, Policy Change, Privilege Use, System Event, Object Access, Detailed Tracking, and Account Management.
    • Event ID   A unique number for each source to identify the event.
    • User   The user name for the user who was logged on and working when the event occurred. N/A indicates that the entry did not specify a user.
    • Computer   The computer name for the computer where the event occurred.
    • Description   This field provides the actual text of the event, or how the application that logged the event explains what has happened.
    • Data   Displays binary data generated by the event in hexadecimal (bytes) or DWORDS (words) format. Not all events generate binary data. Programmers and support professionals familiar with source application can interpret this information.

    Couple of samples available in the event viewer (exchange specific):

    How to view the application log in the event viewer?

    1. Click Start, point to Programs, point to Administrative Tools, and then click Event Viewer.

    2. In the console tree, click Application Log.

    3. To sort the log alphabetically and quickly locate an entry for an Exchange service, in the details pane, click Source.

    4. Double-click a log entry to open an event's properties page.

    5. To filter the log to list entries for a specific type of Exchange-related event, from the View menu, click Filter.

    6. In Application Log Properties, use the Event source list to select an Exchange-related event source. For example:

      • MSExchangeTransport   Events that are recorded when SMTP is used to route messages.
      • IMAP4Svc   Events that are related to the service that allows users to access mailboxes and public folders through IMAP4.
      • MSExchangeAL   Events that are related to the service that addresses e-mail messages through address lists.
      • MSExchangeIS   Events that are related to the service that allows access to the Exchange Information Store service.
      • MSExchangeMTA   Events that are related to the service that allows X.400 connectors to use the message transfer agent (MTA).
      • MSExchangeMU   Events that are related to the metabase update service, a component that reads information from Active Directory and transposes it to the local IIS metabase.
      • MSExchangeSA   Events that are recorded when Exchange uses Active Directory to store and share directory information.
      • MSExchangeSRS   Events that are recorded when Site Replication Service (SRS) is used to replicate computers running Exchange 2003 with computers running Exchange 5.5.
      • POP3Svc   Events that are recorded whenever Post Office Protocol version 3 (POP3) is used to access e-mail.
    7. In the Category list, select a specific set of events or, to view all events for that event source, leave the default setting at All.

    8. Click OK.

    How to view the System log in event viewer?

    Use the following procedure to view errors, warnings, and informational events in the system log for SMTP service.

    1. Click Start, point to Programs, point to Administrative Tools, and then click Event Viewer.

    2. In the console tree, click System Log.

    3. To sort the log alphabetically and quickly locate an entry for an Exchange service, in the details pane, click Source.

    4. Double-click a log entry to open an event's properties page.

    5. To filter the log to list entries for a specific type of SMTP service events, from the View menu, click Filter.

    6. In System Log Properties, in the Event source list, select SMTPSVC.

    7. In the Category list, select a specific set of events or, to view all events for the SMTP service, leave the default setting at All.

    8. Click OK.

    Troubleshooting with Event viewer and Exchange Server:

    Within each Event Viewer log, Exchange Server records informational, warning, and error events. Monitor these logs closely to track the types of transactions being conducted on your Exchange servers. You should periodically archive the logs or use automatic rollover to avoid running out of space. Because log files can occupy a finite amount of space, increase the log size (for example, to 50 MB) and set it to overwrite, so that Exchange Server can continue to write new events.

    You can also automate event log administration by using tools and technologies such as the following:

    • Event Comb   The Event Comb tool lets you gathers specific events from the event logs of several computers to one central location. It also lets you report on only the event IDs or event sources you specify. For more information about Event Comb, see the Account Lockout and Management Tools Web site.
    • Eventtriggers   You can also use command-line tools to create and query event logs and associate programs with particular logged events. By using Eventtriggers.exe, you can create event triggers that will run programs when specific events occur. For more information about Eventtriggers, see the Windows Server 2003 topic New command-line tools and the Windows XP topic Managing event logs from the Command Line.
    • Microsoft Operations Manager   You can use Microsoft Operations Manager (MOM) to monitor the health and use of Exchange servers. Exchange 2007 Management Pack extends Microsoft Operations Manager by providing specialized monitoring for servers that are running Exchange 2007. This management pack includes a definition of health for an Exchange 2007 server and will raise an alert message to the administrator if it detects a state that requires intervention. For more information about Exchange 2007 Management Pack, see the Microsoft Operations Manager Web site.

    Reference MSDN articles:


  • Le Café Central de DeVa

    Windows Desktop Search 3.0 does not return Outlook 2007 e-mail items


    When you use Windows Desktop Search 3.0 together with Microsoft Office Outlook 2007, you experience the following symptoms:

    • No e-mail items are returned when you use Windows Desktop Search to search for items.

    • On a Microsoft Windows XP-based computer, Outlook may not appear on the All Locations menu in Windows Desktop Search.

    • When you open the Indexing Options item in Control Panel, you experience one of the following symptoms:

    Microsoft Office Outlook does not appear in the Included Locations list in the Indexing Options dialog box.

    Microsoft Office Outlook appears in the Included Locations list. However, a folder icon appears next to Microsoft Office Outlook instead of the Outlook 2007 icon.

    • If you click Modify in the Indexing Options dialog box, you experience one of the following symptoms:

    Microsoft Office Outlook does not appear in the Indexed Locations dialog box.

    Microsoft Office Outlook appears in this dialog box. However, if you expand Microsoft Office Outlook, Mailbox - Your Name does not appear.

    • If you are running Windows Vista, the following event is logged in the Application log:

    Event Source: Search
    Event Category: Gatherer
    Event ID: 3036
    Date: date
    Time: time
    Type: Warning
    User: N/A
    Computer: ComputerName
    Description: The content source <mapi://[GUID}/> cannot be accessed.
    Content Windows Application, SystemIndexCatalog
    The filtering was stopped because of a user action, such as stopping the crawl

    If you are running Windows XP, the following event is logged in the Application log:

    Event Source: Windows Search Service
    Event Category: Gatherer
    Event ID: 3036
    Date: date
    Time: time
    Type: Warning
    User: N/A
    Computer: ComputerName
    Description: The content source <mapi://[GUID}/> cannot be accessed.
    Content Windows Application, SystemIndexCatalog
    The specified address was excluded from the index. The site path rules may have to be modified to include this address.

    This issue occurs if the following registry subkey is missing from the computer:


    You may experience this issue if you install a Microsoft Office 2003 program after the 2007 Microsoft Office system is installed.

    For example, you experience this issue in the following scenario:

    1. You install the 2007 Office system.

    2. You modify the 2007 Office system installation to remove Microsoft Office Word 2007.

    3. You install Microsoft Office Word 2003.

    For detailed information, please go through the following KB article and its resolution steps.

  • Le Café Central de DeVa

    Outlook Add-in : How to apply Windows XP themes to Office COM Add-ins?


    When you create a COM add-in for a Microsoft Office program, the appearance of that add-in will conform by default to the standard Office appearance. However, with Microsoft Windows XP, you can choose from a number of visual styles (or themes) to customize the appearance of a Microsoft Windows program.

    Unless Windows themes are explicitly enabled for a COM add-in, the appearance of the add-in does not change with these color schemes, leading the add-in to appear dated or out-of-synch with the program where it is contained. With the Microsoft Visual C++ or the Microsoft Visual Studio .NET languages, you can enable your COM add-in to opt-in to Windows themes.

    When you enable an add-in for Windows themes, the themes affect only the appearance of the add-in. The functionality of the add-in is not affected.

    Add-ins created with,

    • MS Visual Basic 6.0: Visual Basic 6.0 does not support themes. Add-ins cannot be themed by using Visual Basic 6.0.
    • MS Visual C++ 6.0 : To use Visual C++ 6.0 to enable a COM add-in to opt-in to Windows XP themes, please read the following code snippet.
    • MS Visual Studio.Net and managed languages: To use Visual Studio .NET and the .NET Framework to enable Windows XP themes for a COM add-in, please follow these steps.

    For more detailed information, please go through the following KB article. If you need more details about how to use Windows XP visual styles (themes), you can visit the following Microsoft MSDN Web site: http://msdn2.microsoft.com/en-us/library/ms997646.aspx

  • Le Café Central de DeVa

    Download: Outlook 2007 Add-ins & code samples


    Whenever we discuss with regards to Outlook Add-in customization, many of our customer(s) or their developers want to customize it according to their requirements. Also they look for the code-samples, related articles to proceed further. In this discussion, i have added couple of Outlook 2007 specific add-ins, code samples along with their download links.

    Please download the following Outlook add-ins along with the code-samples:

    Outlook 2007 Add-Ins: RulesAddin, TravelAgencyAddin, and PrepareMeAddin
    Download: http://www.microsoft.com/downloads/details.aspx?FamilyId=F871C923-3C42-485D-83C7-10A54A92E8A2&displaylang=en

    Please note: The Outlook 2007 Sample Add-Ins are a learning tool that will help you understand some of the important new features in the Outlook 2007 object model. Each sample is available in a version for Visual Studio 2005 Tools for Office Second Edition (VSTO 2005 SE) in addition to the version based on the Outlook 2007 Sample: Visual Studio 2005 Templates.

    They provide coverage of the following important new areas:

    • Using the Rules object model, which allows you to programmatically create or access most rules supported by the Outlook Rules Wizard (Rules sample)
    • Implementing a form region for an Outlook contact item (Travel Agency sample)
    • Adding a custom task pane to an Outlook AppointmentItem (Prepare Me sample)
    Outlook 2007 Sample: Ribbon Extensibility Add-In
    Download: http://www.microsoft.com/downloads/details.aspx?FamilyID=11ab93bf-48dc-4f73-8f6b-62b4482a92bc&displaylang=en

    Please note: The Outlook 2007 Ribbon Extensibility Add-In is a learning tool that will help you understand how to customize the Ribbon for Outlook Inspector windows. It provides coverage of the following important new areas:

    • How legacy command bar customizations appear in an Outlook Inspector window
    • How to implement the Office.IRibbonExtensibility interface in an Outlook add-in
    • Providing Ribbon markup for Ribbon customization depending on the RibbonID string passed in the GetCustomUI callback
    • Using the IRibbonControl.Context object to find an instance of an Inspector object
    • Changing the state of Ribbon controls depending on the PropertyChange event for an Outlook item.
    Outlook 2007 Sample: Visual Studio 2005 Templates
    Download: http://www.microsoft.com/downloads/details.aspx?familyid=0cab159a-0272-4635-b158-10553779a3df&displaylang=en

    Please note: The Outlook 2007 Add-in Templates provide a basic template for developing Outlook 2007 add-ins using Visual Studio 2005. The templates are available in both Visual Basic and Visual C# languages. Each template includes the OutlookItem class, which enables developers to work with generic Outlook items through late-binding, without determining the item type first.

    The templates also include wrapper classes that enable you to track multiple Outlook Inspector or Explorer windows. The templates provide an alternative to the Outlook add-in templates available with Microsoft Visual Studio 2005 Tools for the 2007 Office system (VSTO 2005 Second Edition). VSTO 2005 SE is the preferred tool for developing add-ins for Outlook 2007. If you choose to build your add-in by using the Outlook 2007 Add-In Templates, you must add a COM Shim project and a Setup project to your add-in solution.

    Outlook 2007 Add-In: Form Region Add-In
    Download: http://www.microsoft.com/downloads/details.aspx?familyid=932b830f-bf8f-41fc-9962-07a741b21586&displaylang=en

    Please note: The Outlook 2007 Form Region Add-ins are a learning tool that will help you understand how to design, build, and run custom form solutions based on Outlook form regions. They provide coverage of the following important new areas:

    • Tracking the state of a form region across multiple windows
    • Implementing the FormRegionStartup interface in an Outlook add-in
    • Understanding the form region manifest XML
    • Registering a form region with Outlook
    • Storing form components as a project resource
    • Deploying a form region solution
    Outlook 2007 Sample: What's New Add-Ins
    Download: http://www.microsoft.com/downloads/details.aspx?FamilyId=AABF127D-D069-4549-A1B1-667A698C3EF6&displaylang=en

    Please note: The Outlook 2007 What's New Add-Ins are a learning tool that will help you understand some of the important new features in the Outlook 2007 object model. They provide coverage of the following important new areas:

    • Context menu customization
    • The Table object model and Instant Search queries
    • The PropertyAccessor object that allows getting or setting properties that are not explicitly exposed in the Outlook object model
    • The Rules object model that allows programmatically creating or accessing most rules supported by the Outlook Rules Wizard
    • The SelectNamesDialog object that displays the Outlook Address Book and lets you customize the dialog caption and recipient selectors
    • Enhancements to the AddressEntry and AddressList objects, including the ExchangeUser and ExchangeDistributionList objects that allow getting and setting properties of an Exchange user or Exchange distribution list.
  • Le Café Central de DeVa

    CASPOL & Add-in : How to Full trust the assemblies ?


    If we want to "fully trust" the assemblies, it can be done through the signed assemblies. In Visual Studio 2005, you need to select the Properties for the project and select the Signing tab.  After you installed (including the newly signed assemblies) you need to give permission to the assemblies. This can be done using a tool called CASPOL.EXE.

    The CASPOL or Code Access Security Policy tool enables users and administrators to modify security policy for the machine policy level, the user policy level, and the enterprise policy level. For detailed information, you can have a look at the following article.

    Find the command line for registering your file: caspol -u -ag All_Code -url "<full path to your file>" FullTrust -n "<assembly name>"

    If you have more than one file or if you want to do this for a directory: caspol -u -ag All_Code -url "<directory path>\*" FullTrust

  • Le Café Central de DeVa

    Outlook & VBA : Export contact information to Excel


    Please find the following script that retrieves the FullName and BusinessTelephoneNumber properties for all the contacts in an Outlook address book:


       1:  On Error Resume Next
       3:  Const olFolderContacts = 10
       5:  Set objOutlook = CreateObject("Outlook.Application")
       6:  Set objNamespace = objOutlook.GetNamespace("MAPI")
       8:  Set colContacts = objNamespace.GetDefaultFolder(olFolderContacts).Items
      10:  Set objExcel = CreateObject("Excel.Application")
      11:  objExcel.Visible = True
      12:  Set objWorkbook = objExcel.Workbooks.Add()
      13:  Set objWorksheet = objWorkbook.Worksheets(1)
      15:  objExcel.Cells(1, 1) = "Name"
      16:  objExcel.Cells(1, 2) = "Business Phone"
      18:  i = 2
      20:  For Each objContact In colContacts
      21:      objExcel.Cells(i, 1).Value = objContact.FullName
      22:      objExcel.Cells(i, 2).Value = objContact.BusinessTelephoneNumber
      23:      i = i + 1
      24:  Next
      26:  Set objRange = objWorksheet.UsedRange
      27:  objRange.EntireColumn.Autofit
  • Le Café Central de DeVa

    Outlook Error : There is not enough memory to perform the operation


    When one my customer tried to add a Global Address Book entry to the Contacts folder, the contact is not added. She received the following error message: There is not enough memory to perform the operation.

    This problem may occur if the size of the certificate data exceeds 32,768 bytes (32 KB).

    Follow the following steps to resolve the issue:

    • To resolve this problem, apply hotfix 948075.
    • Then, add the StripCertsNotValidForMail value to the registry to enable the hotfix.

    For more detailed information, I request you to go through the following Microsoft Support Knowledge based article.

  • Le Café Central de DeVa

    Exchange Server 2003 & Public folders


    Some organizations use public folders heavily, while others do not. The degree to which public folders are used in your organization may have a large effect on how you plan for migration and coexistence of public folders and the data stored therein. Factors to consider include:

    • The total number of public folders and the amount of data contained in them. Many organizations choose to remove unneeded folders from their public folder structure as part of their migration process.

    • The number of existing replicas and where they are located. Because Exchange public folders can be easily replicated between servers, many organizations have placed public folder servers at remote sites to improve access for remote users; as part of server consolidation, these replicas will normally be re-homed elsewhere.

    • The extent to which public folders are used as part of normal operations. If public folder-based applications are in use, how much are they used? Do users depend on them for their key tasks, or are they of secondary importance?

    • The messaging clients to be used after the consolidation. Outlook 2003 can be configured to cache users' public folder favorites; this makes public folder access in Cached Exchange Mode seamless, but it increases the size of the OST file, and it causes additional synchronization traffic. Requests for public folder items will be automatically directed to the best available replica, which may be in a distant site across a slow or high-latency link.  

    Even if your organization does not use public folders for business reasons, Exchange still uses two important system public folders that must be accounted for in your planning.

    First, the Schedule+ Free/Busy folder is where Exchange stores free/busy status for individual mailboxes. Outlook publishes users’ calendar status to this folder, as does the Exchange System Attendant.

    Having multiple replicas of this folder helps ensure quick and consistent access to schedule data throughout the organization; however, these replicas have to be synchronized, which can add a substantial amount of network traffic.

    When a user creates a new meeting request, Outlook opens a connection to find each attendee’s free/busy data. First, Outlook retrieves the user's legacy distinguished name, which it then uses to identify the name of the free/busy folder it needs. Outlook then searches for the correct folder and message for the specified user's schedule data. This means that a single meeting request may generate multiple un-cached connections to different servers.

    On the other hand, adding multiple replicas of the free/busy folder means that changes made to one replica may take time to propagate to other replicas. Adjusting the number of replicas, their location, and the replication schedule used may be necessary to ensure the right balance between minimized access time and replication convergence.

    Offline Address book is one of the advantage when you make use of public folder. The OAB provides offline and Cached Exchange Mode users access to a subset of properties for all objects in the global address list.

    Exchange generates updates to the OAB periodically, and Outlook automatically downloads available changes once a day (in online mode) or when the user goes online (in Cached Exchange Mode).

    In general, Microsoft’s normal recommendation is to maintain OAB replicas on each server that contains user mailboxes. As you consolidate user mailboxes, you should bear in mind that when the OAB changes, a large number of clients may need to download OAB changes at once, and plan network capacity and CPU allocation accordingly.

  • Le Café Central de DeVa

    Outlook UI Issue: Save password setting not retained ?


    One of my customer uses MS Windows XP SP3 & Outlook 2007 reported that whenever he tries to connect to the Internet service provider (ISP) to retrieve messages from POP3, his earlier entered password is not retained. He was pretty sure that  he chose to save the password. Also he tried to entering the correct password again does not resolve the issue.

    This issue occurs for one or more of the following reasons:

    • You have a corrupted Outlook profile or a corrupted Outlook Express identity.

    • It may be due to the registry changes or corrupted information.

    • This issue might happen add-ins also.

    I used the following troubleshooting steps:

    Step 1: Check Outlook has valid profile or not.

    It's recommended to make use of new profile without any issues associated with that.

    After you locate the .pst files, create a new e-mail profile in Outlook. To do this, follow these steps.

    1.Start Outlook.

    2. On the Tools menu, click Account Settings.

    3. Click the E-mail tab, and then click New.

    4. Follow the instructions in the Add New E-mail Account wizard to create the new account.
    Note If you do not have the account information that the Add New E-mail Account wizard requires, view the settings for your existing account. To do this, click the account on the E-mail tab in the Account Settings dialog box, and then click Change. Note each setting in the Internet E-mail Settings dialog box.
    If you do not know the password for your e-mail account, contact your Internet service provider (ISP). Or, if your mailbox is not associated with your ISP, contact the network administrator of the server on which your mailbox is located for help with your password.

    Step 2: Open the Outlook in safe mode

    This will avoid any add-ins getting loaded and creating the issues

    1. Click Start, and then click Run.

    2. In the Open box, type outlook.exe /safe, and then click OK.

    Step 3: Troubleshooting with COM Add-in

    To troubleshoot possible problems that are caused by COM add-ins, disable any COM add-ins that you do not use regularly. Then, restart Outlook. If that does not resolve the problem, disable the add-ins one by one. If that does not resolve the problem, disable all add-ins. To disable COM add-ins, follow the steps for the version of Outlook that you are using.
    For Outlook 2007
    To disable COM add-ins, follow these steps:

    1. On the Tools menu in Outlook 2007, click Trust Center.

    2. Click Add-ins, click COM Add-ins in the Manage list, and then click Go.

    3. In the COM Add-Ins dialog box, click to clear the check boxes for any COM add-ins that you want to disable.

    4. After you disable the add-ins, click OK, and then restart Outlook.

  • Le Café Central de DeVa

    Download : Microsoft Error Code Look-up


    Please download the following tool, which can be used to determine error values from decimal and hexadecimal error codes in Microsoft Windows operating systems.

    The tool can look up one or more values at a time. All values on the command line will be looked up in Exchange’s internal tables and presented to you. If available, informational data associated with the value or values will also be shown.

  • Le Café Central de DeVa

    Monitoring event sink # 22 - Store Event sink registered with Outbox or Sent item folders won’t fire


    Have you register an Exchange 2000 store event sink globally on the mailbox store, the sink fires for the appropriate events (OnSyncSave, for example) for all folders in a mailbox. However, the sink does not fire for events in the Outbox or the Sent Items Folder?

    For example, when a user sends an e-mail, it appears in the Outbox folder for a brief time.

    Outbox: This is due to Even if an event sink is registered directly on the Outbox, it will not fire.

    The Outbox is a temporary home for a new message while it waits to be picked up by the MAPI spooler. When the message appears in this folder, it does not generate an OnSave or OnSyncSave event. Also, when the message disappears from the folder, it does not generate an OnDelete or OnSyncDelete event.

    Sent Items:
    Messages are moved to the Sent Items folder after being sent by the MAPI client in such a way that events are not generated, and this behavior is by design. The appropriate events are generated if you manually move items into the Sent Items folder.

    Please find the following KB article, which provides resolution.

  • Le Café Central de DeVa

    Monitoring event sink # 21 - Exchange Server 2007 & Store Event sink registration


    One of my customer developed with a store event sink (onsave;ondelete) in x64bit Exchange 2007 server. He want to know in which server role that we need to register the   event sink along with COM+ application?

    Yep, that's true. As you know in Exchange Server 2007 it has various server roles like hub, transport, edge etc.

    The EventSink needs to be installed on the mailbox server role of the Exchange Server.

  • Le Café Central de DeVa

    Some countries / regions not listed in Outlook contact address list ?


    In the Contact form of Microsoft Outlook, the country that you want to use may not be listed in the Country/Region field list.

    Please find the following Support KB which provides the resolution for this issue.

Page 20 of 28 (684 items) «1819202122»