Le Café Central de

                    ... Deva blogs!!

  • Le Café Central de DeVa

    Outlook Performance Series: Outlook data file (.pst or .ost file) issues


    Welcome to troubleshooting performance issues for MS Outlook 2007 Series - Part 4

    If the .pst file or the .ost file shuts down incorrectly, you may receive one of the following error messages the next time that you start Outlook:

    Error message 1:  Outlook cannot open the data file filename until it has been checked for problems.

    Error message 2: Microsoft Office Outlook’ exited without properly closing your Outlook data file ‘drive:\Users\username\AppData\Local\Microsoft\Outlook\outlook.ost’. ‘Microsoft Office Outlook’ must be restarted. If this error message recurs, contact support for ‘Microsoft Office Outlook’ for assistance.

    Error message 3 : The data file filename was not closed properly’. This file is being checked for problems.

    If you receive one or more of these error messages, you may experience performance issues until Outlook finishes the reconciliation process for the .ost file or for the .pst file. The following gear icon is displayed in the status bar while Outlook checks the data file in the background:

     Outlook 2007 gear icon

    When this icon disappears, the .pst file or the .ost file is reconciled. If you exit Outlook while the gear icon is present, reconciliation must restart the next time that you run Outlook. It's recommended that you leave Outlook running until the gear icon disappears before you exit Outlook.

    An incorrectly shut down .ost file or .pst file may occur for one of the following reasons:

    Antivirus scanning of the file
    Forced Microsoft Windows shutdown before the Outlook.exe process shuts down completely
    Outlook add-ins

    If you see this issue frequently, and you have to exit Outlook shortly before you shut down your computer, it may be better to shut down Windows while Outlook is still running.

  • Le Café Central de DeVa

    Hotfix: Failure Sending mail error with System.Net.Mail (.Net Framework 4.0) while sending large attachment


    Recently one of my customer ran into an issue with his application used to send email messages using System.Net.Mail.SmtpClient (SNM) API. He used Visual Studio 2010 and .NET Framework 4.0. It’s a pretty simple code,

    //Sample C# code snippet using System.Net.Mail API
    SmtpClient MyClient = new SmtpClient("mail_server");
    MyClient.Credentials = new System.Net.NetworkCredential("User", "Password", "Domain");
    MailMessage MyMsg = new MailMessage("fromuser", "touser", "Testing Attachment", "Testing");
    Attachment MyAttachment = new Attachment(@"attachmentfile");
    MyMsg .Attachments.Add(MyAttachment );
    MyClient.Send(MyMsg );

    Using the above code, whenever he adds the attachment size is larger than 3 MB and tries to send the message. It fails with the following a exception System.Net.Mail.SmtpException and error message “Failure sending mail”. Also during troubleshooting i noticed that i generates a inner exception System.IndexOutOfRangeException with the error message “Index was outside the bounds of array”. In the application he also failed to specify the TransferEncoding property of the attachment.

    In this customer scenario, recommended him to try with TransferEncoding property with QuotedPrintable worked for him. We tried it like,
    MyAttachment.TransferEncoding = System.Net.Mime.TransferEncoding.QuotedPrintable;

    You can find the following support knowledgebase article which talks about the issue and provides resolution to overcome the issue. 

    Also there is a hotfix available to overcome this issue. Please make sure that you must have .NET Framework 4.0 installed to apply this hotfix. To download this hotfix, you can visit following Microsoft website: https://connect.microsoft.com/VisualStudio/Downloads/DownloadDetails.aspx?DownloadID=30226.

  • Le Café Central de DeVa

    Part # 2 - Using C#.Net & Exchange Web Service (EWS) : How to create and send e-mail messages?


    In this we will see how to create & send e-mail messages using Exchange Web Service (EWS). It’s pretty simple with EWS to do.

           // Create the Exchange Service Binding
            ExchangeServiceBinding esb = new ExchangeServiceBinding();
           // Add its relevant Credentials like user name, password, domain and URL
            esb.Credentials = new NetworkCredential(userName, Password, domain);
            esb.Url = @"https://myexchangeserver/EWS/Exchange.asmx";
            // CreateItemType and set its relevant properties/values
            CreateItemType request = new CreateItemType();
            // Select Message Disposition specified
            request.MessageDisposition = MessageDispositionType.SendOnly;
            request.MessageDispositionSpecified = true;
           // Create MessageType and set its relevant properties/values
            MessageType message = new MessageType();
            // Enter value for subject
            message.Subject = subject;
            message.Body = new BodyType();
            message.Body.BodyType1 = BodyTypeType.Text;
           // Enter value for body
            message.Body.Value = body;
            message.ToRecipients = new EmailAddressType[1];
            message.ToRecipients[0] = new EmailAddressType();
           // Enter ToEmailAddress
            message.ToRecipients[0].EmailAddress = toEmailAddress;
           // Select Routing Type
            message.ToRecipients[0].RoutingType = "SMTP";
            request.Items = new NonEmptyArrayOfAllItemsType();
            request.Items.Items = new ItemType[1];
            request.Items.Items[0] = message;
               CreateItemResponseType response = esb.CreateItem(request);
               // Determine whether the request was a success.
                if (response.ResponseMessages.Items[0].ResponseClass == ResponseClassType.Error)
                    throw new Exception(response.ResponseMessages.Items[0].MessageText);
                    Console.WriteLine("Item was created");
              catch(Exception e)

    Try this code snippet. Happy programming!!

  • Le Café Central de DeVa

    DNS Issue: Cannot join domain–Windows Server 2008 R2 Server


    Recently I tried joining my Windows Server 2008 R2 with the targeted domain controller (as part of new Exchange install), but it thrown the following error:
    DNS issue - Cannot join domain

    In order to move ahead, I tried the following step to move ahead… Try temporarily setting the IP address of domain controller as your first DNS server or Preferred DNS Server, join the domain (later you can change the DNS Server setting back).

    Here it goes:
    Step 1: In Windows Server 2008 R2 > View Network Connections > Network Connection > Active Connection > Properties > Internet Protocol Version (TCP/IPv4) > Preferred DNS Server > Update the IP address of primary domain controller > OK
    Step 2: Now try join your domain. (In addition, after successful joining domain, I change DNS servers back to earlier). It made the trick.


  • Le Café Central de DeVa

    SMTP Commands Part # 2 - Using Telnet on port 25 to test SMTP communication


    Please find the following steps and SMTP commands to test SMTP communication using Telnet on Port 25.

    1.                   At a command prompt, type telnet, and then press ENTER. This command opens the Telnet session.

    2.                   Type set localecho and then press ENTER. This optional command lets you view the characters as you type them. This setting may be required for some SMTP servers.

    3.                   Type set logfile <filename>. This optional command enables logging of the Telnet session to the specified log file. If you only specify a file name, the location of the log file is the current working directory. If you specify a path and a file name, the path must be local to the computer. Both the path and the file name that you specify must be entered in the Microsoft DOS 8.3 format. The path that you specify must already exist. If you specify a log file that doesn't exist, it will be created for you.

    4.                   Type open mail1.fabrikam.com 25 and then press ENTER.

    5.                   Type EHLO contoso.com and then press ENTER.

    6.                   Type MAIL FROM:chris@contoso.com and then press ENTER.

    7.                   Type RCPT TO:kate@fabrikam.com NOTIFY=success,failure and then press ENTER. The optional NOTIFY command defines the particular delivery status notification (DSN) messages that the destination SMTP server must provide to the sender. DSN messages are defined in RFC 1891. In this case, you are requesting a DSN message for successful or failed message delivery.

    8.                   Type DATA and then press ENTER. You will receive a response that resembles the following

    354 Start mail input; end with <CLRF>.<CLRF>

    9.                   Type Subject: Test Sampleand then press ENTER.

    10.               Press ENTER. RFC 2822 requires a blank line between the Subject: header field and the message body.

    11.               Type This is a test message and then press ENTER.

    12.               Press ENTER, type a period ( . ) and then press ENTER. You will receive a response that resembles the following:

    250 2.6.0 <GUID> Queued mail for delivery

    13.               To disconnect from the destination SMTP server, type QUIT and then press ENTER. You will receive a response that resembles the following:

    221 2.0.0 Service closing transmission channel

    14.               To close the Telnet session, type quit and then press ENTER.

  • Le Café Central de DeVa

    Outlook UI tricks : How to copy Outlook Calendar items from one folder to another?


    Have you tried copying all Outlook Calendar items from one folder to another? What is the result that you got?

    In Microsoft Office Outlook 2007, Outlook 2003, Outlook 2002, and Outlook 2000, you cannot copy all the items in a Calendar folder when you right-click the folder, you click Copy Calendar, and then you paste in another top-level folder. Instead, this method creates a new subfolder under the destination folder.

    To copy all of the items from a Calendar folder to another folder, you must select each item and then copy and paste it to the target folder.

    Please refer the KB, so that you can get some alternate ways to do this.

  • Le Café Central de DeVa

    Tutorial : Free/Busy data - Series # 1


    Publishing Free/Busy data:

    Free/busy data is published information that contains a user's personal availability data based on the user's schedule. Microsoft Exchange Server uses the information extensively when users schedule meetings.

    • Exchange Server 2003 stores free/busy information in a dedicated public folder that is named SCHEDULE+ FREE BUSY. This folder contains a separate subfolder for each administrative group in your Exchange organization. When a user publishes free/busy data, Exchange Server 2003 posts the information in a message in the appropriate free/busy subfolder. The free/busy folders are system folders and function in a manner that is similar to offline address book folders.
    • Exchange Server 2007 uses the availability service.

    Free/Busy data & different versions of Outlook and Exchange Server :

    • The process of publishing free/busy data from the user's client application to the appropriate free/busy folder depends in part on the client that the user has.
    • Outlook and other MAPI-based clients function somewhat differently in this respect from Web-based clients such as Microsoft Office Outlook Web Access for Exchange Server 2003 and Microsoft Outlook Mobile Access.
    • The Availability service for Microsoft Exchange Server 2007 provides calendar information for your users. This information is known as free/busy information.

    How Outlook publishes free/busy data?

    By default, Outlook publishes the free/busy data for a user one time every 15 minutes, and again when Outlook shuts down. When publishing, Outlook updates the entire free/busy message instead of just adding changes to the existing message. The message includes free/busy data that ranges from the current month to two months in the future.

    How to customize with Outlook?

    Outlook users can customize the free/busy settings, including the following:

      • Publishing interval, which can be as short as one minute.
      • Number of months in the future to publish, which can be as long as 36 months.

    Outlook 2007 with different Exchange Servers:

    As we know that Microsoft Office Outlook 2007 works well with a variety of e-mail servers, and you can take advantage of an even richer feature set by using Outlook with the latest version of Microsoft Exchange Server. Some features of Office Outlook 2007 require or work better with Microsoft Exchange Server 2003 or later.

    • Free/Busy information is always up-to-date for users with Exchange 2007 Availability service. But it’s not the case with Exchange 2003.
    • Tentative calendar booking is managed on the Exchange Server. Users do not need to run Outlook for others to see their Free/Busy status. This feature is only available in Exchange Server 2007, not with Exchange Server 2003.

    MadFB, Autodiscover & Outlook clients:

    • The Autodiscover service provides information for the Availability service by locating and providing the external and internal URLs for the Outlook 2007 client.
    • If your Microsoft Office Outlook 2007 users cannot view calendar information for other Outlook 2007 users in your Exchange 2007 environment, the problem may involve a failure in either the Autodiscover service or the Availability service.
    • Microsoft Entourage for the Macintosh also relies on this MadFB(MSExchangeFBPublish) process to publish free/busy data.
    • Outlook Web Access and Outlook Mobile Access do not publish free/busy data directly to the public folder store.
    • Instead, they rely on a free/busy publishing agent that is named MadFB (also known as MSExchangeFBPublish), which runs as part of the Microsoft Exchange System Attendant service (MSExchangeSA).
    • MadFB has two functions.
      • It publishes free/busy messages for Outlook Web Access and Outlook Mobile Access
      • It deletes duplicate free/busy messages

    Note: Because most of the processing is handled by the Exchange servers instead of the client, using Outlook Web Access and Outlook Mobile Access can provide performance and reliability advantages over Outlook.

    There are various other issues happens with respect to Free/Busy data when we do with programming as well as with the Outlook clients. I tried to catch up some of them and summarize for your view….

    1. Troubleshooting the Free/Busy information for Outlook 2007 by reading this technet article or you can check it through the error codes available. Some of them are,

    • 0x80072EE7 – ERROR_INTERNET_NAME_NOT_RESOLVED - This error is usually caused by a missing host record for the Autodiscover service in the Domain Naming service.
    • 0X80072F17 – ERROR_INTERNET_SEC_CERT_ERRORS - This error is usually caused by an incorrect certificate configuration on the Exchange 2007 computer that has the Client Access server role installed.
    • 0X80072EFD – ERROR_INTERNET_CANNOT_CONNECT - This error is usually caused by issues that are related to Domain Naming service.
    • 0X800C820A – E_AC_NO_SUPPORTED_SCHEMES - This error is usually caused by incorrect security settings in Outlook 2007.

    2. If you use Exchange Server 2007, you can determine whether the Availability service is not functioning properly or not:
    (i) using Event log (ii) using Test-OutlookWebServices cmdlet

    Using Event log:

    When we try to review the application event log on the Exchange 2007 Client Access server and check for events that are generated by the Availability service. There are common events that are associated with the availability service as described. Some of them are,

  • 4001 The Availability service could not discover an Availability service in the remote forest   If you see this event, verify that the Autodiscover service in the remote forest is functioning correctly.
  • 4003 PublicFolderRequestFailed   This event usually indicates a failure to look up free/busy information for legacy mailboxes. Typically, this information comes from public folders. This error might be caused if the public folders are configured incorrectly or if the Availability service has not been configured to look up public folders for the legacy mailboxes. The description of this event will usually include the URL to the target public folder and one of the following HTTP errors:
    • 401   If you see this HTTP error, Integrated Windows authentication is probably disabled on the /public virtual directory.
    • 403   If you see this HTTP error, the Client Access server may be offline or it does not contain a replica. This might occur if Secure Sockets Layer (SSL) is not enabled on the /public virtual directory.
    • 404   This HTTP error can occur if the /public virtual directory could not be found.
  • 4005 Could not find information in Active Directory to allow cross-forest requests   If you see this event, you must configure the Availability service across forests.
  • 4011 Cross-forestRequestFailed   This usually indicates a failure to locate an AvailabilityAddressSpace object that is required to proxy the Availability service request to a different forest.
  • In this case, we will see how to find and troubleshoot the issue using the Event log. A 4003 event indicates a failure to look up free/busy information for legacy mailboxes. Typically, this information comes from public folders. The following is an example of a 4003 event.

    Event ID : 4003

    Raw Event ID : 4003

    Category : Availability Service

    Source : MSExchange Availability

    Type : Error

    Message : Process 4664[w3wp.exe:/LM/W3SVC/1/ROOT/EWS-1-128114978363374212]: Microsoft.Exchange.InfoWorker.Common.Availability.PublicFolderRequest failed. The exception returned is Microsoft.Exchange.InfoWorker.Common.Availability.PublicFolderRequestProcessingException

    This may be due to Exchange 2007 users are unable to see the free/busy information for users whose mailboxes reside on the Exchange 2003 server. The free/busy information displays as hash marks for these users in the Outlook Scheduling Assistant page.

    Using Test-OutlookWebServices cmdlet:

    When you try to test through cmdlet test the service using, 
                            Test-OutlookWebServices -id:user1@contoso.com -TargetAddress: user2@contoso.com

    • The Test-OutlookWebServices cmdlet uses a specified e-mail address to verify that the Outlook provider is configured correctly.
    • The optional MonitoringLogFile parameter indicates whether the results are written to the log file for Microsoft Operations Manager (MOM).
    • Using the Test-OutlookWebServices cmdlet to verify the Autodiscover service settings for Microsoft Outlook on a computer that is running Microsoft Exchange Server 2007 that has the Client Access server role installed.
    • This will provide the error details about the Availability service.

    For example, as specified in the following article and code example verifies the service information that is returned to the Outlook 2007 client from the Autodiscover service for a user who is named monika@contoso.com. The code example verifies information for the following services:

    • Availability service
    • Outlook Anywhere
    • Offline Address Book
    • Unified Messaging
    test-OutlookWebServices -identity:monika@contoso.com

    This code example tests for a connection to each service. This example also submits a request to the Availability service for the user monika@contoso.com to determine whether the user's free/busy information is being returned correctly from the Client Access server to the Outlook 2007 client.

    3. Free/Busy Options Not Unique to Each Profile:

    On a computer that contains multiple profiles, the Free/Busy options will be the same for every profile. This information is defined in the KB article. The Free/Busy information is stored on a per-user basis rather than a per-profile basis. If the user who is logged on to the computer defines multiple profiles, each profile will contain the same Free/Busy information.

    To set the calendar Free/Busy information, follow these steps:

    1. On the Tools menu, click Options.

    2. On the Preferences tab, click Calendar Options.

    3. Click Free/Busy Options. In the Free/Busy Options dialog box you can set the following items:

    • How many months of Free/Busy information to publish.

    • How frequently the information should be updated.

    • Whether the information should be published on the Internet.

    • The Internet URL address for storing and searching for the information.

    4. Conditions that affect the display of Free/Busy time in Outlook:

    After you make an appointment in your active Calendar in Microsoft Outlook, other people may not immediately see that time as busy. This condition may also occur when someone attempts to invite you to a meeting.

    There are three possible causes for this behavior:

    • By default, Outlook updates your Free/Busy time every 15 minutes. If the update is not complete, others will not see your appointment as busy time.

    • Outlook publishes your Free/Busy time for only the next two months. If your appointment is beyond the published limit, others will not see your appointment as busy time.

    • If the appointment Show Time As property is set to Free, others will not see your appointment as busy time.

    The unavailability of Free/Busy information appears as black hatched lines in the Attendee Availability dialog box.


    • If the cause is how often Outlook updates Free/Busy time, follow these steps as described in the support KB.
    • If the cause is how far ahead Outlook publishes Free/Busy time, follow these steps as described in the support KB
    • If the cause is that the Appointment Show Time As property is not set to Free, follow these steps as described in the support KB

    5. Legacy free/busy information no longer appears for appointments that are booked against a mailbox in Exchange Server 2007:

    In a Microsoft Exchange Server 2007 environment, you configure a room mailbox to have the AllBookInPolicy attribute set to "false." When you do this, the legacy free/busy information no longer appears for the appointments that are booked against the mailbox. For example, when you examine the free/busy information by using the Scheduling Assistant, the room mailbox shows a status of No Information.

    This issue occurs because the default permission is changed to "None" when the AllBookInPolicy attribute is set to "false." This situation prevents the Exchange System Attendant from publishing the legacy free/busy information. By default, when any mailbox is created, the free/busy permissions are set as follows:

    Default: Read: Free/Busy time
    Anonymous: None

    This condition is also true for resource mailboxes.

    To go through the following article to resolve this problem in Exchange Server 2007 Service Pack 1.

    6. Resolving problems in Outlook for delegated Exchange Server 2003 mailbox users :

    As stated above, we need to perform this procedure if delegated users are receiving error messages such as "Unable to open the free/busy message" when they try to modify the mailbox owner's calendar.

    1. Request that all delegate users and the mailbox owner shut down Outlook.

    2. Request that the mailbox owner start Outlook with the /cleanfreebusy switch. The mailbox owner can do this from the command prompt by typing: outlook/cleanfreebusy

      Outlook will re-create the LocalFreeBusy message and synchronize the other mailbox folders to use it.

    3. Resume using Outlook. Delegates should now be able to use the mailbox as expected.

    7. Cleaning Mailbox stores using MadFB:

    As stated above, and in the over time, the free/busy folders may accumulate duplicate free/busy messages. In addition, Outlook and the free/busy folders may become unsynchronized, especially for mailboxes that have multiple delegate users. This section provides information about how Exchange Server 2003 automatically maintains free/busy data according to a configurable schedule, and about how you can repair synchronization problems.

    The cleanup process includes:

    • Deleting duplicate free/busy data messages.
      These are messages with an appended –x in the URL, where x is the number of the duplicate message. For each set of duplicates, MadFB keeps the oldest message and deletes the rest.
    • Repairing the URLs of free/busy messages.
      The URL of a free/busy message must be in canonical format, ending with subject(based on legacyExchangeDN).EML.
      Messages that are duplicates of existing free/busy messages have non-canonical URLs because of the appended -x. Messages that have been upgraded or replicated from Microsoft Exchange Server version 5.5 have URLs that contain GUIDs. These messages are also considered non-canonical.

    8. Calendar support in an Exchange and Non-exchange environment:

    As stated in the following article regarding the calendar support in an Exchange and Non-exchange environment (for ex. using the Microsoft Exchange Connector for Lotus Notes and the Microsoft Exchange Connector for Novell GroupWise) perform several functions to support calendaring capabilities between the foreign system and Exchange Server 2003:

    • Replicate directory information so that both Exchange users and foreign system users have access to calendaring data.
    • Convert meeting request items from Exchange format to the foreign format and from the foreign format to the Exchange format.
    • Detect Exchange Server 2003 free/busy requests and look up the appropriate free/busy data in the foreign system. This free/busy lookup is bidirectional.
  • 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

    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

    Bitness : How to identify Outlook 2010 installation is a 32-bit or 64-bit?


    When Outlook 2010 is installed, it sets the new registry key named Bitness, which indicates whether the Outlook 2010 installation is a 32-bit or 64-bit version. This can be useful to administrators who want to audit computers to determine the installed versions of Outlook 2010 in their organizations.

    • Registry path: HKEY_LOCAL_MACHINE\Software\Microsoft\Office\14.0\Outlook
    • Registry key: Bitness
    • Value: either x86 or x64

    For more information about Microsoft Office 2010 in 64-bit, see 64-bit editions of Office 2010.

  • 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

    List of Ports used by Exchange Server


    Please find the list of Ports used by Exchange Server:

    Ports used by Exchange Server





    TCP: 25

    The SMTP service uses TCP port 25.


    TCP/UDP: 53

    DNS listens on port 53. Domain controllers use this port.


    TCP: 691

    The Microsoft Exchange Routing Engine service (RESvc) listens for routing link state information on this port.


    TCP/UPD: 389

    Lightweight directory access protocol (LDAP) used by Microsoft Active Directory® directory service, Active Directory Connector, and the Microsoft Exchange Server 5.5 directory use this port.


    TCP/UDP: 636

    LDAP over Secure Sockets Layer (SSL) uses this port.


    TCP/UDP: 379

    The Site Replication Service (SRS) uses this port.


    TCP/UDP: 390

    This is the recommended alternate port to configure the Exchange Server 5.5 LDAP protocol when Exchange Server 5.5 is running on an Active Directory domain controller.


    TCP: 3268

    Global catalog. The Windows 2000 and Windows Server 2003 Active Directory global catalog (a domain controller "role") listens on TCP port 3268.


    TCP: 3269

    Global catalog over SSL. Applications that connect to TCP port 3269 of a global catalog server can transmit and receive SSL encrypted data.


    TCP: 143

    Internet Message Access Protocol (IMAP) uses this port.


    TCP: 993

    IMAP4 over SSL uses this port.


    TCP: 110

    Post Office Protocol version 3 (POP3) uses this port.


    TCP: 995

    POP3 over SSL uses this port.


    TCP: 119

    Network News Transfer Protocol (NNTP) uses this port.


    TCP: 563

    NNTP over SSL uses this port.


    TCP: 80

    HTTP uses this port.


    TCP: 443

    HTTP over SSL uses this port.

  • Le Café Central de DeVa

    Error message on 64-bit windows when you try run regsvr32.exe?


    When you attempt to run Regsvr32.exe to register a 32-bit dll (dynamic link library) on a 64-bit version of Windows, you receive the following error message: Filename.dll is not an executable file and no registration helper is registered for this file type. This behavior is by design. This behavior occurs because the Regsvr32.exe file in the System32 folder is a 64-bit version. When you run Regsvr32 to register a DLL, you are using the 64-bit version by default.

    To resolve this issue, run Regsvr32.exe from the %SystemRoot%\Syswow64 folder. For example, type the following commands to register the DLL:

    cd \windows\syswow64
    regsvr32 c:\filename.dll

    Please note that the Syswow64 folder contains the 32-bit versions of Windows program files and DLLs.

    Hope this helps.

  • Le Café Central de DeVa

    Features: Changed or removed in Outlook 2013

    The below table contains information about what features changed or removed in Outlook 2013 (since Office 2010 was released). This applies to Office 2013 | Office 365 ProPlus.



    Type of Change


    Reason for Change



    Additional Information

    Outlook Meeting Workspaces


    Feature Removed

    The Meeting workspaces feature is removed from Outlook. The entry point commands to create Meeting Workspaces is removed from both the Quick Access Toolbar and the Ribbon.

    The feature was not widely used.

    Allows for a simpler Ribbon experience.


    For the feature description, see Use Meeting Workspaces to organize meetings

    Outlook Exchange Classic offline


    Feature Removed

    Offline mode is being removed from Outlook.

    Offline mode is a legacy data access method for online mode connections to Exchange Server.




    Remove /Cleanfreebusy switch and code


    Feature Removed

    Users can no longer start Outlook by using the /cleanfreebusy switch. If they try this, they will receive the following message: "Cannot start Microsoft Outlook. The command line argument is not valid. Verify the switch you are using."

    Because of the removal of the Public Folder Free/Busy feature, this switch is no longer needed.




    Command Bars object model (OM)



    The Command Bars OM is being changed so that built-in Command Bar objects cannot be accessed through programming.

    Command bars are not used in Outlook 2013. Therefore, add-ins that use the Command Bars OM are not required.


    Use the IRibbonExtensibility interface in an Outlook 2013 add-in instead of command bars. You can’t customize Inspector ribbons by using VBScript code behind forms.

    Updating Earlier Code for CommandBars

    For more information about how to use IRibbonExtensibility to customize the Outlook 2013 user interface programmatically, see Extending the User Interface in Outlook 2010.

    Outlook Direct Booking


    Feature Removed

    Direct booking of resources in the calendar no longer exists.

    This functionality is outdated and is superseded by the Exchange Availability service and free/busy for resources.

    More reliable service.

    Mailboxes that are currently configured to use Outlook direct booking should be migrated to Exchange 2007 or Exchange Server 2010 resource mailboxes.

    Exchange 2007 and Exchange Server 2010 resource mailboxes provide a better range of features. These mailboxes also provide server-side administration by using the Exchange Management Shell or the Exchange Management Console to simplify resource mailbox management.


    Import/Export to Applications


    Removing specific file-format support from the Import/Export wizard in Outlook

    The ability to import/export Outlook data to legacy file formats.

    The following legacy formats were removed from the Import/Export Wizard: Internet Mail Account Settings, Internet Mail and Addresses, Comma Separated Values (DOS), Access 97-2003, Excel 97-2003, Tab Separated Values (DOS), Tab Separated Values (Windows), ACT!, Contact Manager, Lotus Organizer, Outlook Express/Windows Mail, Personal Address Book.


    Import/Export to the PST and CSV formats is still a supported option.

    Export Outlook items to an Outlook Data File (.pst)

    Journal Module and Journaling


    Feature Removed

    The Journal Module is being removed as a top-level module, and auto-journaling is also being removed.


    Replacement is unnecessary.



    Outlook Links Collection


    Feature Removed

    Links Collection object model is removed.

    Functionality is removed in the UI.




    Notes and Journal customization


    Feature Removed

    Notes are now only yellow and medium size.

    Keeping the Notes module simple.

    Simplifying how Notes are used.



    Legacy Contact Linking


    Feature Removed

    The capability to link arbitrary Outlook items to Outlook contacts. This contact linking existed only for displaying information in the Activities tab of the contact, which is a feature that is also removed for Outlook 2013.

    Contact linking is replaced by the Outlook Social Connector and the New Person Card.




    Outlook Activities tab


    Feature Removed

    The Activities tab on contact forms is not available for Outlook 2013. The Activities tab used to aggregate all Outlook items (e-mail, meetings, tasks, and so on) associated with a contact.



    The Activities tab is replaced by the Outlook Social Connector and displays in the People pane.


    Outlook Mobile Service (OMS)


    Feature Removed

    Support for the Outlook Mobile Service protocol, which is used for sending and receiving text messages from Outlook, is being removed.

    Feature has low usage.

    No user benefit.



    Suggested Contacts


    Feature Removed

    Suggested Contacts was used to automatically keep track of everyone the user sends a message to, but who isn’t in Outlook contacts.

    In a clean Outlook 2013 installation, Suggested Contacts is no longer available, the folder never is created, and no suggested contact items are created. In an upgrade to Outlook 2013, this folder is visible, and participates in linking, aggregation and search. However, no new suggested contact items are added to the folder. The folder displays in an upgrade scenario. However, it can now be deleted.





    Outlook Pubcal: Calendar Publishing


    Feature Removed

    Removing the ability to publish one's calendar to Office.com.



    Users in Exchange Server environments can use Exchange Calendar Publishing.

    Non-Exchange users can use a service such as Hotmail to share calendars.

    Enable Internet Calendar Publishing

    How to keep your family in sync with Hotmail Calendar

    Outlook/Exchange Deliver to PST


    Feature Removed

    Removing the ability for users to have Exchange accounts delivering into PST files.





    Dialup/VPN Options


    Feature Removed

    Removing application level dial-up options and VPN options.

    Available as part of the operating system.


    Follow operating system instructions for configuring VPN or dial-up networking connections,

    For Windows Vista and Windows 7, see Set up an incoming VPN or dial-up connection.

    For Windows 8, see Configure a Dial-Up Networking Connection Item.

    Public Folder Free/Busy


    Feature Removed

    Public Folder Free/Busy feature is replaced.

    Replaced by the Exchange availability service

    Free/Busy functionality is more reliable

    Free busy information can be obtained through the Exchange Availability service

    Understanding the Availability Service

    ToDo Bar


    Feature Removed

    A new functionality is implemented.

    A new feature known as Pinned Peeks is implemented to achieve similar functionality.

    Pinned Peeks feature



    User Datagram Protocol (UDP)


    Feature Removed

    UDP is removed. In earlier versions of Outlook the feature was used for new mail alert results and for folder updates.

    The UDP functionality that was provided by UDP is replaced with an asynchronous notification method.




    Preview unread messages


    Feature Removed

    The Auto Preview feature to preview unread items is removed. It remains possible to configure Message Preview for one, two, and three lines.





    Outlook categories quick click


    Feature Removed

    Categories quick click from the message list is removed. Categories are displayed when they are applied in Office 2013 by right-clicking or using Ribbon buttons.

    Low usage. This feature was used by around 1% of users.


    Apply categories by choosing from the short-cut menus (right clicking) or by choosing Ribbon buttons.


    Outlook Search through Windows Shell

    Office and Windows

    Feature Removed

    In Office 2013, Outlook items do not display in Windows Shell searches (for example, searches from the Start Menu or by using Win+F). Perform Office searches within Office 2013.



    Search Office items within the Office application.


  • Le Café Central de DeVa

    MAPI32.DLL : Error message when you try to start Outlook 2003: &quot;MAPI32.DLL is corrupt or the wrong version&quot;


    When you try to start Microsoft Office Outlook 2003, the program does not start. Additionally, you receive the following error message:

    "Cannot start Microsoft Office Outlook. MAPI32.DLL is corrupt or the wrong version. This could have been caused by installing other messaging software. Please reinstall Outlook."

    Do you know....this issue may occur if you install and then uninstall Microsoft Office Outlook 2007 Beta 2 on a computer that has Outlook 2003 installed. When you uninstall Outlook 2007 Beta 2 version, the Outlook 2007 Beta 2 version of the MSMapi32.dll file is not removed from the following folder on your computer:  "C:\Program Files\Common Files\System\Msmapi\LocaleID"

    Please view this useful MSDN KB Article. It has the information about the issue, its cause, resolution for this issue

  • Le Café Central de DeVa

    Review: Microsoft Outlook Social Connector (OSC) Provider for Facebook


    Do you use Facebook, look forward to integrate with Outlook and change your existing world? Yes, you can can connect your Facebook account to the Outlook Social Connector and stay up to the minute with the people in your network by accessing everything from e-mail threads to status updates in one single, centralized view. Nice isn’t it.

    The Microsoft Outlook Social Connector Provider for Facebook allows you to connect your Facebook account to the Outlook Social Connector and obtain information about your friends and colleagues. You can see status updates and recently posted items from your Facebook contacts.

    See your contact’s social network activity

    You can also use Outlook Social Connector to display a quick view of related Outlook content when you click on an email from a contact, such as recent e-mail conversations, meetings, and shared attachments to help you easily track your communications.

    We built the Outlook Social Connector with privacy and security in mind. The information people share is a personal choice, so it's up to you to determine what you share, and with whom. To give more Outlook users the ability to connect their Inbox with their social networks, we have also updated Outlook Social Connector to work with Outlook 2003 and 2007.

    Where to download and steps to install?

    For Outlook 2010 32-bit, Outlook 2007, and Outlook 2003:

    1. Download the setup file by clicking the Download button next to OSCFB-x86-en-us.exe (below), and save the file to your hard disk.
    2. Double-click the OSCFB-x86-en-us.exe program file on your hard disk to start the Setup program.
    3. Follow the instructions on the screen to complete the installation.

    For Outlook 2010 64-bit:
    1. Download the setup file by clicking the Download button next to OSCFB-x64-en-us.exe (below), and save the file to your hard disk.
    2. Double-click the OSCFB-x64-en-us.exe program file on your hard disk to start the Setup program.
    3. Follow the instructions on the screen to complete the installation

    NOTE: The Microsoft Outlook Social Connector Provider requires Microsoft Outlook Social Connector and the related update (KB983403) to be installed. If these components are not already installed on your machine, the Microsoft Outlook Social Connector Provider for Facebook will download and install the necessary updates from the Microsoft Download Center before completing the provider installation.

    For more help, ask questions at Microsoft Answers.

  • Le Café Central de DeVa

    OWA Customization Update : Outlook Web Access (OWA) 2010 Support Policy


    Adding this blog post with respect to my previous article regarding support for Exchange Server OWA customization and its PSS Support Policy. We do get customers that they try and want to us provide assistance on OWA customization for OWA 2007 and 2010. They either want to customize OWA by changing features or by modifying the user interface or want to restore back to the normal OWA. Although they can customize OWA objects by modifying either the script code or the HTML, but Microsoft does not recommend that them to do so.

    Please note: Per the support knowledge base article, Microsoft Product Support Services (PSS) also cannot help you with the customization. But if you want to customize the OWA, the following limitations and considerations apply:

    • PSS does not provide assistance to customize OWA objects.
    • If you contact PSS about an OWA issue for a server that OWA is customized on, you must replace the customized files with the original versions of the files and verify that you can reproduce the issue by using the original versions of the files.
    • If the issue occurs only with the customized versions of the files, and you cannot reproduce the issue with the original versions of the files, PSS cannot help you troubleshoot the issue.
    • If you install a service pack or hot fix that updates the files in the Program Files\Exchsrvr\Exchweb folder, any customized files that exist in that folder are overwritten.
    • As a best practice and we recommend customers to follow is, if you do not want to lose the customizations that you created, create a backup of the customized files, and then restore the files after you install the service pack or hot fix.

    In these scenarios, although PSS cannot help you (customers/developers/end-users) customize OWA,  they can still try any one of the following resources:

    • As you know, Microsoft hosts public newsgroups where you can post questions and discuss topics that are related to Exchange Server or Exchange 2000. One of the newsgroups where you can ask questions that are related to Exchange 2000 development is microsoft.public.exchange2000.development. To access this newsgroup and other Exchange Server newsgroups, visit the following Microsoft Web site: http://technet.microsoft.com/en-us/exchange/bb341336.aspx 
    • To locate other Exchange Server communities, visit the following Microsoft Web site: http://technet.microsoft.com/en-us/exchange/bb341336.aspx

    Hope this helps.

  • 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

    Do you know the difference between Appointment, Meeting and Calendar item?


    Please find the differences among the following Outlook items:

    Appointment: A calendar item that users create for themselves and that has no attendees other than the organizer.

    Meeting: A calendar item for which there are attendees in addition to the organizer.

    Calendar item: An item on the user’s calendar. This can be an appointment or a meeting.

  • 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

    Exchange Server: How to retrieve appointments using C# & WebDAV?

    Code Snippet (C#):
       //Declaration part
        string strExchSvrName = "";
        string strMailbox = "";
        string strCalendarUri = "";
        string strDomain = "";
        string strUserName = "";
        string strPassword = "";
        System.Net.HttpWebRequest WebDavRequest = null;
        System.Net.HttpWebResponse WebDavResponse = null;
        System.Net.CredentialCache MyCredentialCache = null;
        byte[] bytes = null;
        System.IO.Stream WebDavRequestStream = null;
         // Provide the Exchange server name;
          strExchSvrName = "mydomain.in";
          // Provide Mailbox folder name.
           strMailbox = "Mailbox1";
          //if HTTPS -then provide URI of the user's calendar folder
          strCalendarUri = "https://" + strExchSvrName + "/exchange/"+ strMailbox + "/Calendar/";
            //if HTTP -then provide URI of the user's calendar folder
            //strCalendarUri = "http://" + strExchSvrName + "/exchange/" + strMailbox + "/Calendar/";
            //Provide the User name and password of appointment creator. Make sure the user has enough permissions to read
            strUserName = "username"; 
            strDomain = "domain";
            strPassword = "password";
            //Build the Query
            string query = "<?xml version=\"1.0\"?><D:searchrequest xmlns:D = \"DAV:\" >"
                    + "<D:sql>SELECT \"http://schemas.microsoft.com/exchange/outlookmessageclass\", \"DAV:contentclass\", 
    \"DAV:displayname\" FROM \""
    + strCalendarUri + "\""
                    + "WHERE \"DAV:ishidden\" = true AND \"DAV:isfolder\" = false"
                    + "</D:sql></D:searchrequest>";
            query = "<?xml version=\"1.0\"?>"
                    + "<dav:searchrequest xmlns:dav=\"DAV:\">"
                    + "<dav:sql>"
                    + "SELECT "
                    + "\"DAV:displayname\", " // Appointment Uri portion of the resource
                    + "\"DAV:href\", " // Full resource Uri of the appointment
                    + "\"urn:schemas:httpmail:subject\", " // Subject of appointment
                    + "\"urn:schemas:calendar:dtstart\", " // Start date/time of appointment
                    + "\"urn:schemas:calendar:dtend\", " // End date/time of appointment
                    + "\"urn:schemas:httpmail:textdescription\", " // Body of appointment
                    + "\"urn:schemas:calendar:location\", " // Location of appointment
                    + "\"urn:schemas:calendar:alldayevent\", " // Whether appointments an all day appointment
                    + "\"urn:schemas:calendar:meetingstatus\", " // Confimed status of the appointment
                    + "\"urn:schemas:calendar:busystatus\", " // Comitted status the appointment represents
                    + "\"http://schemas.microsoft.com/mapi/proptag/x823D0003\", " // Color of the appointment
                    + "\"urn:schemas:calendar:reminderoffset\", " // Reminder offset of the appointment
                    + "\"DAV:ishidden\", " // Whether this is hidden
                    + "\"urn:schemas:calendar:instancetype\", " // Relation of the appointment to a recurring series
                    + "\"urn:schemas:calendar:transparent\", " // Transparency of the appointment to free/busy searches
                    + "\"urn:schemas:calendar:timezoneid\" " // Display timezone of the appointment
                    + "FROM Scope('SHALLOW TRAVERSAL OF \"" + strCalendarUri + "\"') "
                    + "WHERE "
                    + "(\"DAV:contentclass\" = 'urn:content-classes:appointment' ) " // Item is an appointment
                    + "AND (NOT \"urn:schemas:calendar:instancetype\" = 1) " // appointment is not the master of a recurring series (Get single
    appointments or instances of recurring appointments)
                    + "AND (\"urn:schemas:calendar:dtend\" &gt; '" + 
                    Convert.ToDateTime("3-12-2007").Date.ToUniversalTime().ToString("yyyy/MM/dd HH:mm:ss") + "')
    //Appointment ends after the start of our range
                    + "AND (\"urn:schemas:calendar:dtstart\" &lt; '" + 
    Convert.ToDateTime("3-17-2007").Date.ToUniversalTime().ToString("yyyy/MM/dd HH:mm:ss") + "')
    //Appointment begins before the end of our range
                    + "AND (\"DAV:displayname\" like '" + "LS.ImportantDates." + "%' ) "
                    + "ORDER BY \"urn:schemas:calendar:dtstart\" "
                    + "</dav:sql>"
                    + "</dav:searchrequest>";
            //Provide credentials required to access the server. Here i used the NTLM
            MyCredentialCache = new System.Net.CredentialCache();
            MyCredentialCache.Add(new System.Uri(strCalendarUri), "NTLM", new System.Net.NetworkCredential(strUserName, strPassword, strDomain));
            //Create the HttpWebRequest object.
            WebDavRequest = (System.Net.HttpWebRequest)HttpWebRequest.Create(strCalendarUri);
            // Add the network credentials to the request.
            WebDavRequest.Credentials = MyCredentialCache;
            // Specify the PROPPATCH method.
            WebDavRequest.Method = "SEARCH";
            // Encode the body using UTF-8.
            bytes = Encoding.UTF8.GetBytes(query);
            // Set the content header length.
            WebDavRequest.ContentLength = bytes.Length;
            // Get a reference to the request stream.
            WebDavRequestStream = WebDavRequest.GetRequestStream();
            // Write the message body to the request stream.
            WebDavRequestStream.Write(bytes, 0, bytes.Length);
            // Release the connection
            // Set the content type header.
            WebDavRequest.ContentType = "text/xml";
           WebDavResponse = (System.Net.HttpWebResponse)WebDavRequest.GetResponse();
           Response.Write("Calendar : ");
      Response.Write("Status Code: " + WebDavResponse.StatusCode + "Description: " + WebDavResponse.StatusDescription);
           using (System.IO.StreamReader streamReader = new System.IO.StreamReader(WebDavResponse.GetResponseStream()))
         You can get more related samples and detailed information from Dan's blog. For more information you can also refer this article 
  • Le Café Central de DeVa

    Exchange VSS : At Exchange Server 2010 ESEUtil fails with Jet error–1032


    Recently I was playing for a VSS issue at my Exchange Server 2010 environment – when I run the ESEUtil (with its parameter /mh) command then I got the error “Jet error –1032”.

    > eseutil /mh "D:\Temp\tempdb.edb"
    Extensible Storage Engine Utilities for Microsoft(R) Exchange Server Version 14.00
    Copyright (C) Microsoft Corporation. All Rights Reserved.
    Initiating FILE DUMP mode...
    Error: Access to source database 'D:\Temp\tempdb.edb’ failed with Jet error -1032.

    The error code –1032 points to JET_ERRFileAccessDenied, which tells us that I cannot access the file, as the file is locked or in use. This is the first time I noticed the issue at my end. When I investigated further I realized the issue - I have mounted the database and ran the ESEUtil. The database needs to be offline to read the header information. So I dismounted the database and ran the ESEUtil worked like a charm – bingo!!

    Happy debugging!!

  • Le Café Central de DeVa

    How Microsoft Product Activation works?

    To reduce software piracy and to make sure that all Microsoft customers receive the product quality that they expect, Microsoft is now including product activation technology in several products.

    Product activation is a simple, straightforward process that is completely software based. It requires no hardware add-ons or any other external tool. In most cases, the only information that is needed to activate a product is an installation ID, which is created by the software itself. The information that is collected during activation will not be used to personally identify the user.

    To activate a Microsoft product, select either the Internet option or the telephone option in the Product Activation Wizard.
      • With Internet-based activation, Microsoft servers process the activation and activate the product.
      • With telephone-based activation, you activate your product by contacting a Microsoft Product Activation Center and following the steps that are provided by an automated telephone system or by a customer service representative.

    Note You should have your installation ID when you speak with a customer service representative. This ID is displayed in the product activation wizard.

    To activate Windows or Office by telephone, following these steps:

    Access the Product Activation Wizard: Each product has a different way to start the Product Activation wizard, follow these steps to start the wizard:
    Windows 7

    ·         Click Start

    ·         Right-click Computer.

    ·         Select Properties.

    ·         At the bottom of this window, click Activate Windows now.

    Note To activate your product directly by telephone, type slui.exe 4 in the Search programs and files and then press Enter. Select your location in the drop-down list for a toll free activation telephone number to call. This method is for Windows 7 only.

    Windows Vista

    §  Click Start

    ·         Right-click Computer.

    ·         Select Properties.

    ·         At the bottom of this window, click Activate Windows.

    Windows XP

    ·         Click Start.

    ·         Point to All Programs.

    ·         Point to Accessories.

    ·         Point to System Tools.

    ·         Click Activate Windows.

    Office programs, such as Microsoft Word, Microsoft Excel, Microsoft PowerPoint, and so on
    Office 2010

    ·         Click Start.

    ·         Point to All Programs.

    ·         Point to Microsoft Office.

    ·         Click any Office application (such as Word).

    ·         After the application starts, click the File tab at the top.

    ·         On the right side, click Help.

    ·         Activation information and a Change Product Key link can be seen on the right side.

    ·         Click Change Product Key to launch the Activation Wizard.

    ·         Enter the product key and follow the steps for activation.

    2007 Microsoft Office

    ·         Click Start.

    ·         Point to All Programs.

    ·         Point to Microsoft Office.

    ·         Click any Office program.

    ·         After the Office program starts, click the Office button.

    ·         Click program_name Options. (For example, click Word Options or Excel Options.)

    ·         Click Resources.

    ·         On the activate Microsoft Office line, click Activate.

    Microsoft Office 2003 or earlier versions of Microsoft Office programs

    ·         Click Start.

    ·         Point to All Programs.

    ·         Point to Microsoft Office.

    ·         Click any Office program.

    ·         After the Office program starts, the Office Activation Wizard will be displayed.

    o   If the Online Activation failed, select Use the automated phone system to activate

    o   Click the drop-down menu and select the nearest location to you for a toll free activation telephone number to call and then click Next.

    o   When you call the activation telephone number, you are asked to enter or speak the Installation ID numbers displayed on your screen. The automated service will issue you a confirmation ID number. Type in the confirmation ID number, and then click Next to active the product.

    o   If the automated service is unsuccessful, stay on the line and your call will be transferred to a Microsoft Product Activation Customer Service representative who will help you to activate your product. The representative will give you a confirmation ID number if your copy of product is genuine.

    Telephone Numbers: For more information about Microsoft Product Activation Center Telephone Number, visit the following site: Microsoft Activation Centers Worldwide Telephone Numbers.


  • Le Café Central de DeVa

    How to get Explorer & Inspector selected mail item using Outlook Object Model (OOM) & .Net?


    In this article, we are going to see how we can get Explorer & Inspector selected mail item using Outlook Object Model (OOM) & .Net and process it.

    '[Code Snippet : VB.Net, .Net Framework 2.0/3.5, Outlook Object Model (OOM)]
               'Declaration part
                Dim ThisOutlookSession As Outlook.Application = New Outlook.Application
                Dim NS As Outlook.NameSpace = ThisOutlookSession.Session
                Dim objsel As Object
               'Check it's Inspector or Explorer Window
                If TypeName(ThisOutlookSession.ActiveWindow) = "Inspector" Then
                    objsel = ThisOutlookSession.ActiveInspector.CurrentItem
                   'Get the selected item for processing
                    objsel = ThisOutlookSession.ActiveExplorer.Selection.Item(1)
                   'Check the relevant item and process per your logic
                    If (TypeOf objsel Is Outlook.MailItem) Then
                        Dim mailItem As Outlook.MailItem = _
                            TryCast(objsel, Outlook.MailItem)
                        MsgBox("Mail Item's Subject" & mailItem.Subject)
                        'Implement your business logic here
                    ElseIf (TypeOf objsel Is Outlook.ContactItem) Then
                        Dim contactItem As Outlook.ContactItem = _
                           TryCast(objsel, Outlook.ContactItem)
                        MsgBox("Contact Item's Subject" & contactItem.Subject)
                        'Implement your business logic here
                    ElseIf (TypeOf objsel Is Outlook. _
                    AppointmentItem) Then
                        Dim apptItem As Outlook.AppointmentItem = _
                           TryCast(objsel, Outlook.AppointmentItem)
                        MsgBox("Appointment Item's Subject" & apptItem.Subject)
                        'Implement your business logic here
                    ElseIf (TypeOf objsel Is Outlook.TaskItem) Then
                        Dim taskItem As Outlook.TaskItem = _
                            TryCast(objsel, Outlook.TaskItem)
                        MsgBox("Task Item's Body" & taskItem.Body)
                        'Implement your business logic here
                    ElseIf (TypeOf objsel Is Outlook.MeetingItem) Then
                        Dim meetingItem As Outlook.MeetingItem = _
                            TryCast(objsel, Outlook.MeetingItem)
                        MsgBox("Meeting Item's subject" & meetingItem.Subject)
                        'Implement your business logic here
                    End If
                End If
                'Release the unwanted objects
                objsel = Nothing

    Applicable environment: Outlook 2007, Outlook Object Model, VB.Net, .Net Framework 2.0/3.5

  • Le Café Central de DeVa

    TechED 2012: Mark Russinovich’s Malware Hunting with the Sysinternals Tools


    This was one of the interesting session that I was looking for… Usually I follow Mark’s blog and read the related info. So I was super excited to watch this one. Ok, let me switch back… the session provides an overview of several Sysinternals tools, including Process Monitor, Process Explorer, and Autoruns, focusing on the features useful for malware analysis and removal. These utilities enable deep inspection and control of processes, file system and registry activity, and autostart execution points. Mark Russinovich demonstrates their malware-hunting capabilities by presenting several real-world cases that used the tools to identify and clean malware, and concludes by performing a live analysis of a Stuxnet infection’s system impact.

    Hope you enjoyed it!!

  • Page 2 of 27 (654 items) 12345»