Le Café Central de Deva
let.us.share.develop.more... Deva blogs!!
I changed the way of blogging. Re-designed the site & started using the latest Windows Live Writer 2011!! Additionally added Microsoft Translator gadget available @ top of page, so that you can change the page in your preferred language!!
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.
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.
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")); to: _Namespace olNS(olApp.GetNames("MAPI"));
One of my customer wanted to get the date and time when the message was received by Microsoft Exchange?
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.
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.
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.
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:
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.
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
11: partial class Program
13: static void Main(string args)
15: ServicePointManager.ServerCertificateValidationCallback =
16: delegate(Object obj, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
18: // Replace this line with code to validate server
19: // certificate.
20: return true;
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 = "firstname.lastname@example.org";
55: message.ToRecipients = new EmailAddressType;
56: message.ToRecipients = new EmailAddressType();
57: message.ToRecipients.EmailAddress = "email@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;
62: createEmailRequest.Items.Items = message;
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)
75: if (respMsg.ResponseClass == ResponseClassType.Error)
77: throw new Exception("Error: " + respMsg.MessageText);
79: else if (respMsg.ResponseClass == ResponseClassType.Warning)
81: throw new Exception("Warning: " + respMsg.MessageText);
84: // Check to determine whether the response message is the correct type.
85: if (respMsg is ItemInfoResponseMessageType)
87: ItemInfoResponseMessageType createItemResp = (respMsg as ItemInfoResponseMessageType);
88: ArrayOfRealItemsType aorit = createItemResp.Items;
90: foreach (ItemType item in aorit.Items)
92: if (item is MessageType)
94: MessageType myMessage = (item as MessageType);
95: Console.WriteLine("Created item: " + myMessage.ItemId.Id);
98: // If needed add the logic to check and cast for all other types.
103: catch (Exception ex)
Reference: Creating an Exchange Web Services Client Application
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.
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 !!
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.
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.
Microsoft Windows Server 2003, Windows XP, Windows 2000 Server, and Windows NT record events in three kinds of logs:
Servers running Windows Server 2003 and Windows 2000 Server that are domain controllers might have the following additional logs in Event Viewer:
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:
What are the main event components of the Event viewer?
The main event components are as follows:
Couple of samples available in the event viewer (exchange specific):
How to view the application log in the event viewer?
Click Start, point to Programs, point to Administrative Tools, and then click Event Viewer.
In the console tree, click Application Log.
To sort the log alphabetically and quickly locate an entry for an Exchange service, in the details pane, click Source.
Double-click a log entry to open an event's properties page.
To filter the log to list entries for a specific type of Exchange-related event, from the View menu, click Filter.
In Application Log Properties, use the Event source list to select an Exchange-related event source. For example:
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.
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.
In the console tree, click System Log.
To filter the log to list entries for a specific type of SMTP service events, from the View menu, click Filter.
In System Log Properties, in the Event source list, select SMTPSVC.
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.
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:
Reference MSDN articles:
http://technet.microsoft.com/en-us/library/aa996117(EXCHG.65).aspx http://technet.microsoft.com/en-us/library/aa996634(EXCHG.65).aspx http://technet.microsoft.com/en-us/library/aa996105(EXCHG.65).aspx http://technet.microsoft.com/en-us/library/bb232137(EXCHG.80).aspx