Le Café Central de Deva
... Deva blogs!!
I changed the way of blogging, developing, designing and assisting my customers. Re-designed the site and started using the latest Windows Live Writer & Windows 10!! Additionally added Microsoft Translator gadget available @ top of page, so that you can change the page in your preferred language!!
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:
For more detailed information, I request you to go through the following Microsoft Support Knowledge based article.
Note You should have your installation ID when you speak with a customer service representative. This ID is displayed in the product activation wizard.
· 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.
§ Click Start
· At the bottom of this window, click Activate Windows.
· Click Start.
· Point to All Programs.
· Point to Accessories.
· Point to System Tools.
· Click Activate Windows.
· 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.
· 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.
· 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.
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 = "email@example.com";
55: message.ToRecipients = new EmailAddressType;
56: message.ToRecipients = new EmailAddressType();
57: message.ToRecipients.EmailAddress = "firstname.lastname@example.org";
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
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!!
Recently i started MS Outlook 2007 and tried connecting to a mailbox that is hosted on a mailbox server that is running Microsoft Exchange Server 2010 inside the local network. I received the following security warning “The name of the security certificate is invalid or does not match the name of the site.”
During my analysis, i found that this error had happened due to the default self-signed Exchange Server 2010 certificate – it causing a name mismatch error to occur.
Also regarding this, i found the following support knowledgebase article talks about it - this scenario applies only to Outlook clients that connect to Exchange from inside the local network.In order to overcome the problem and the article provides resolution also.
Based on the above article this issue may occur if the following conditions are true:
This may differ from the host name that is used in the FQDN of the replacement certificate. For example, the replacement certificate may have an FQDN that resembles the following FQDN: mail.contoso.com
This issue causes a name mismatch error to occur. Therefore, you receive the security warning message when you try to connect Outlook 2007 to the mailbox
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"
query = "<?xml version=\"1.0\"?>"
+ "<dav:searchrequest xmlns:dav=\"DAV:\">"
+ "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\" > '" + 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\" < '" + 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\" "
//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
I got the latest Windows Phone update: 7.10.8107.79 It fixes the following:
To learn how to install updates, check if there's an update available for you to download, and determine which version of Windows Phone you have now, see Phone updates FAQ.
Issue with TNEF:
The use of TNEF is commonly affected by settings in Outlook that are referred to as "Microsoft Outlook Rich Text Format." Rich Text Format and TNEF are not exactly the same, but they are closely related.A TNEF-encoded message contains a plain text version of the message, and a binary attachment that "packages" various other parts of the original message. In most cases, the binary attachment will be named Winmail.dat, and may include:
The formatted text version of the message (font information, colors, and such)
OLE objects (embedded pictures, embedded Office documents, and such)
Special Outlook features (custom forms, voting buttons, meeting requests, and such)
Regular file attachments that were added to the original message
In addition to the information listed above, the path to your personal folders file (PST) file and your logon name are embedded in the winmail.dat file. Although this data is not explicitly exposed to the recipient, if the recipient opens the winmail.dat file for editing in a binary or text editor, he can see the path and logon name. Note that no password information is revealed. To ensure that the path to your PST file or your logon name is not included in the winmail.dat attachment, use the steps in this article to send mail that does not include winmail.dat.Some Outlook features require TNEF encoding to be understood correctly by an Internet e-mail recipient who also uses Outlook. For example, when you send a message with voting buttons to a recipient over the Internet, if TNEF is not enabled for that recipient, the voting buttons will not be received. Alternatively, for sending messages with regular file attachments, TNEF is not needed. If you are sending e-mail with file attachments to a recipient who does not use Outlook or the Exchange Client, you should manually choose to use a mail format that does not require TNEF (such as plain text). By not sending TNEF messages, the recipient will be able to view and save the attachments as expected.
Issues when Send & Receiving mails:
When a message containing TNEF information is received by a mail client that does not understand TNEF, there are three common results:
The plain text version of the message is received and it contains an attachment named Winmail.dat. The Winmail.dat attachment does not contain any useful information when opened since it is in the special TNEF format.
The plain text version of the message is received and it contains an attachment with a generic name such as ATT00008.dat or ATT00005.eml. In this case the client is unable to recognize the TNEF part of the message, and is unable to recognize the Winmail.dat file name, so it creates a file name to hold the TNEF information.
The plain text version of the message is received and the client ignores the Winmail.dat attachment. This is the behavior found in Microsoft Outlook Express. Outlook Express does not understand TNEF, but it does know to ignore TNEF information. The result is a plain text message.
In addition to the receiving client, it is not uncommon for a mail server to strip out TNEF information from mail messages as it delivers them. If a server option to remove TNEF is turned on, clients will always receive a plain text version of the message. Microsoft Exchange Server is an example of a mail server application that has the option to remove TNEF from messages.
Internet Standards - Message Encoding:
The Internet standards for encoding messages such as Multipart Internet Mail Extensions (MIME) and UUENCODE are used independently of TNEF. TNEF can exist in a MIME-encoded message as a MIME body part of type "application/ms-tnef," or in a UUENCODED message as an attachment named Winmail.dat.When a TNEF message is sent using MIME, an entry similar to the following is added to the message:
------ =_NextPart_000_01BA6275.348C1000 Content-Type: application/ms-tnef Content-Transfer-Encoding: base64 eJ8+IisSAQaQCAAEAAAAAAABAAEAAQeQBgAIAAAA5AQAAAAAAADoAAENgAQAAgAAAAEAAQ ABBJAGAEgBAAABAAAADAAAAAMAADACAAAACwAPDgAAAAACAf8PAQAAAHQAAAAAAAAAtTvC [. . .]
Alternatively, if a TNEF message is sent using UUENCODE, information similar to the following is added to the bottom of the message:
begin 600 WINMAIL.DAT M>)\^(C<.`0:0" `$```````!``$``0>0!@`(````Y 0```````#H``$%@ ,` M#@```,L'" `$``<`)P`O``4`0 $!"8 !`"$````S,S5$,C,W,#%"0T-#13$ [. . .]
In either case, the TNEF encoding is sent to the recipient and must be understood by the receiving client to correctly display the encapsulated information.
For more information, please read this article
TNEF & Winmail.dat
Exchange Server 2003 uses transport neutral encapsulation format (TNEF) to convert MAPI messages to RFC 822 format. TNEF appears on a message as a MIME attachment of type application/ms-tnef. The attachment is called Winmail.dat. It contains the full message content and any attached files. Only MAPI clients, such as Outlook, are able to decode the Winmail.dat attachment. Non-MAPI clients are unable to decode TNEF and might show Winmail.dat as a typical, but useless file.
Note: Recipients with mailboxes on an Exchange server, who use Internet clients to access their messages, are not considered non-MAPI recipients. This is because the Exchange store that hosts the mailboxes can produce the necessary RFC 822 content in non-MAPI format when users download MAPI messages from their Inboxes using a POP3 or an IMAP4 client. There are several possible Exchange-to-Exchange transfer scenarios that require MAPI to RFC 822 conversion:
Note: Within a routing group, Exchange Server 2003 always uses S/TNEF, because in all remote delivery cases, the message is guaranteed to take either an SMTP hop directly to a server running Exchange 2000 Server or Exchange Server 2003 or go to the Exchange MTA. Exchange 2000 Server and Exchange Server 2003 support binary MIME. On the other hand, if the message is passed to the Exchange MTA for delivery to a server running Exchange Server 5.5 through RPCs, message conversion is not required, because the RFC 822 format is not used.
Note: Non-MAPI recipients typically prefer to receive a message in plain text or HTML without TNEF, because their clients cannot decode the Winmail.dat file that includes the message and all attachments. TNEF encapsulation prevents non-MAPI clients from accessing attachments. Non-Microsoft tools, such as EPOC WMDecode for Windows, might be able to extract attachments from Winmail.dat files.
You can control the TNEF format behavior for sending messages by adding the following registry key. The number nn represents the virtual server instance for this machine.
HKey_Local_Machine\Software\Microsoft\Exchange\StoreDriver\Exchange\ nn \EnableTnef
A value of 0x0 disables TNEF, and messages are generated without using TNEF. A value of 0x1 will generate a message using legacy TNEF when S/TNEF would ordinarily be generated. A value of 0x2 has no effect, as that is the default behavior.
The above query is a common one that we receive from our customers. Have a look at our support KB regarding this (specific to US English version only) http://support.microsoft.com/kb/2625547 . This article provides a comprehensive list of the most recent hotfix updates and service packs for Microsoft Outlook. Some Outlook features are dependent on Microsoft Word and Microsoft Office components. Therefore, you should also install the latest updates for the Word and Office core components. The above article is applicable to Outlook 2003, Outlook 2007 and Outlook 2010. Also, the above article will be updated to reference new updates as they are released. Note: You can visit the Update Center for Microsoft Office (http://technet.microsoft.com/en-us/office/ee748587.aspx) to find links to the most recent cumulative and public updates for Microsoft Office.
In this post, we will see how to access user free/busy information programmatically using Exchange Web Services (EWS) – Proxy. Exchange provides such a service by storing what is referred to as free/busy data. This information will indicate what requested time range is free, busy, and tentative for a particular user. It will also provide any out of office (oof) status as well. Free/Busy data can be obtained using the Availability service provided by the Exchange Server. This is simply a web service which obtains the free/busy data directly from a user’s calendar. Specifically, the GetUserAvailability operation will provide the free/busy state at specific level of detail.Using GetUserAvailability operation, which provides current user availability information at a specified level of detail - about the availability of a set of users, rooms, and resources within a specified time period. Client applications such as Microsoft Office Outlook, Microsoft Outlook Web Access, Microsoft Outlook Mobile Access, and other applications use SMTP addresses to identify the requested user information. Let start now by creating the binding, set the credentials/URL and pass the binding (esb) to the following functionality ( which I haven’t added here).
Identify the time to compare free/busy information:
Duration duration = new Duration();
duration.StartTime = DateTime.Now;
duration.EndTime = DateTime.Now.AddHours(4);
Identify the options for comparing free/busy information:
FreeBusyViewOptionsType fbViews = new FreeBusyViewOptionsType();
fbViews.TimeWindow = duration;
fbViews.RequestedView = FreeBusyViewType.MergedOnly;
fbViews.RequestedViewSpecified = true;
fbViews.MergedFreeBusyIntervalInMinutes = 35;
fbViews.MergedFreeBusyIntervalInMinutesSpecified = true;
Identify the user mailbox to review for free/busy data: MailboxData mbx= newMailboxData;
mbx = new MailboxData();
EmailAddress emailAddress = new EmailAddress();
emailAddress.Address = "email@example.com";
emailAddress.Name = String.Empty;
mbx.Email = emailAddress;
mbx.ExcludeConflicts = false; Make the request and set the time zone of the request: getusrRequest.TimeZone = newSerializableTimeZone();
getusrRequest.TimeZone.Bias = 480;
getusrRequest.TimeZone.StandardTime = newSerializableTimeZoneTime();
getusrRequest.TimeZone.StandardTime.Bias = 0;
getusrRequest.TimeZone.StandardTime.DayOfWeek = DayOfWeekType.Sunday.ToString();
getusrRequest.TimeZone.StandardTime.DayOrder = 1;
getusrRequest.TimeZone.StandardTime.Month = 11;
getusrRequest.TimeZone.StandardTime.Time = "02:00:00";
getusrRequest.TimeZone.DaylightTime = new SerializableTimeZoneTime();
getusrRequest.TimeZone.DaylightTime.Bias = -60;
getusrRequest.TimeZone.DaylightTime.DayOfWeek = DayOfWeekType.Sunday.ToString();
getusrRequest.TimeZone.DaylightTime.DayOrder = 2;
getusrRequest.TimeZone.DaylightTime.Month = 3;
getusrRequest.TimeZone.DaylightTime.Time = "02:00:00";
In addition to that, add the mailbox and the view options to the request getusrRequest.MailboxDataArray = mbx;
getusrRequest.FreeBusyViewOptions = fbViews;
Send the above request and get the response: GetUserAvailabilityResponseType getusrResponse = esb.GetUserAvailability(getusrRequest);
Access the free/busy info:
if(getusrResponse.FreeBusyResponseArray.Length < 1)
Console.WriteLine("No free/busy response data available.");
foreach(FreeBusyResponseType fbrt in getusrResponse.FreeBusyResponseArray)
if(fbrt.ResponseMessage.ResponseClass == ResponseClassType.Error)
Console.WriteLine("Error:" + fbrt.ResponseMessage.MessageText);
FreeBusyView fbv = fbrt.FreeBusyView;
Console.WriteLine("Merged free/busy data: " + fbv.MergedFreeBusy);
If you run the above piece of code, then you will get the result:
For more information, you can refer the following article: http://msdn.microsoft.com/en-us/library/aa564001(v=exchg.140).aspx
Like earlier, I was involved in migration of VS 2013 C++ Outlook add-in project which was created in Visual Studio 2010. During the compilation I encountered the following error:
In general, CL.exe is Visual Studio Compiler. So it should be in your Visual Studio installation directory. if there is no cl.exe in the directory, then either you can repair or reinstall the Visual Studio.
I tried the earlier trick, but it haven’t worked for me - I tried changing the Platform toolset, but it haven’t worked. Then I fixed the issue by pointing the Executable directories path to the place where CL.exe exists. Check “Configuration Properties” > “VC++ Directories” > “Executable directories” and add the path.
Adding the snapshot as well for your reference:
After setting the correct path, the compilation went without any issue. Happy debugging!!
With the continuation of the previous blogpost, today we’re going to see how we can use Microsoft Office Outlook Web Access or the Exchange Management Shell to configure language settings for Outlook Web Access in Microsoft Exchange Server 2007. Microsoft have provided various options to customize the OWA pages, contents/images/themes in a simpler way. As a part of that, we cam make sure that we can do the language setting for OWA, which determines the language of the Outlook Web Access logon page and error messages, and can be changed by the user at any time.
There are three language settings that you can configure for Outlook Web Access.
How to do OWA Customization for…
How to use the Outlook Web Access client to configure language settings ?
Use a Web browser to access Outlook Web Access.
Click Options, and then click Regional Settings.
Under Language, in the Choose language list, click the language that you want to use.
Note: The language that you select will determine the date and time settings in the Date and Time Formats section.
Click Save to save your language settings.
How to use the Exchange Management Shell to configure the logon and error language settings for Outlook Web Access ?
Run the following command to set the logon and error language setting:
Set-OwaVirtualDirectory -identity "Owa (Default Web Site)" -LogonAndErrorLanguage <language code>
How to use the Exchange Management Shell to configure the default client language setting for an Outlook Web Access virtual directory ?
Run the following command to set the default client language setting:
Set-OwaVirtualDirectory -identity "Owa (Default Web Site)" -DefaultClientLanguage <language code>
How to use the Exchange Management Shell to configure the client languages setting for an individual mailbox ?
Run the following command to set the client languages setting for an individual mailbox:
Set-Mailbox -identity <mailbox identity> -languages <language code>
Windows 7 and Windows Server 2008 R2 SP1 helps keep your PCs and servers on the latest support level. It also provides ongoing improvements to the Windows Operating System (OS), by including previous updates delivered over Windows Update as well as continuing incremental updates to the Windows 7 and Windows Server 2008 R2 platforms based on customer and partner feedback. This enables organizations to deploy a single set of updates. Windows 7 and Windows Server 2008 R2 SP1 will help you:
Download: You can download it from the following link:
Related articles: Also you can have a look at the following articles:
For support and troubleshooting, you can anyone of the following:
One of my customer reported a Outlook UI related issue (not Dev issue), as it bugs them having this error every time they hit the send/receive button. If they try to use Outlook 2010 Beta or Outlook 2007 SP2 generates the error below when doing a full send/receive and their client is connected to Exchange 2007 SP2.
Error: Task 'firstname.lastname@example.org' reported error (0x80190193) : 'The operation failed.'
When we just looked into this, we found its taking us close to OAB synchronization and it fails - which points to, HTTP Error 403. This problem occurred as they enabled the Secure Sockets Layer (SSL) in the OAB directory in Internet Information Services (IIS) Manager.
Customer tried the following steps, which resolved the issue.
FYI: SSL is not required on the OAB virtual directory for domain-connected clients. This is because SSL is not required to download files only. This is the opposite of the default setting for the other Exchange services virtual directories.
By using Visual Basic for Applications (VBA), a simple but powerful programming language that you can use to extend Office 2010 applications with new capabilities and automate repeated tasks. I remember VBA is used for a long time in Microsoft Office based applications. I thought to combine the list the related articles that are pretty much helpful for you to move ahead:
Microsoft Office Developer Center
Writing VBA code for Microsoft Outlook
VBOffice Outlook VBA Samples
Using Visual Basic for Applications in Outlook
Using Outlook Visual Basic for Applications to Respond to Outlook Events
How-To-Outlook: Signing Your Own Macros with SelfCert.exe
2007 Office System Reference Library on MSDN
Getting Started with Office Development
Microsoft Office Interactive Developer Map
Webcast: Using VBA Every Day Is Easier Than You Think
Webcast: Breaking into Your Open XML Format Documents
Managing Macros with the Visual Basic Editor
Microsoft Most Valuable Professional (MVPs) Site
Getting Started with VBA in Outlook 2010
Watch the Video: Using VBA to Control Built-In Commands in the 2007 Office System
When i was searching for Classic ASP (not ASP.Net) related error code, i found the related information. Please find the list of ASP error codes that may be returned while an Active Server Pages (ASP) page is processing. This may vary depending on the version of Internet Information Services (IIS) that you use. This applies to IIS 3.0, 4.0, 5.0 & 6.0.
ASP error code
Out of memory
Expecting string input
Expecting numeric input
Operation not Allowed
Index out of range
Create object failed
Member not found
Script timed out
Object not free threaded
Missing close of script delimiter
Missing close of script tag
Missing close of object tag
Missing Classid or Progid attribute
Invalid Runat attribute
Invalid Scope in object tag
Missing Id attribute
Missing Language attribute
Missing close of attribute
Include file not found
Missing close of HTML comment
Missing File or Virtual attribute
Unknown scripting language
Invalid File attribute
Disallowed Parent Path
Invalid ClassID attribute
Invalid ProgID attribute
Invalid object instance name
Invalid Global Script
Nested Script Block
Page Command Out Of Order
Page Command Repeated
Thread token error
Invalid Application Name
New Application Failed
New Session Failed
500 Server Error
Server Too Busy
Application Directory Error
Change Notification Error
Write HTTP Header Error
Write Page Content Error
Data Type Error
Cannot Modify Cookie
Invalid Comma Use
Invalid TimeOut Value
Session Initialization Error
Disallowed object use
Missing object information
Delete Session Error
Invalid Path Character
Invalid Path Character(s)
Disallowed Path Characters
Path Not Found
Server.CreateObject Access Error
Application Initialization Error
Invalid threading model
Empty Cookie Key
Missing Cookie Name
Missing Default Property
Error parsing certificate
Object addition conflict
Invalid Server Method Call
Cannot launch out of process component
Server shutting down
Out of Range 'Expires' attribute
Invalid Default Script Language
Missing Code Page
Invalid Code Page
Invalid CodePage Value
Cannot call BinaryRead
Cannot use Request.Form
Cannot use generic Request collection
Illegal value for TRANSACTION property
Method not implemented
Object out of scope
Cannot Clear Buffer
Invalid Path parameter
Illegal value for ENABLESESSIONSTATE property
MSDTC Service not running
Requests for GLOBAL.ASA Not Allowed
Invalid @ Command directive
Invalid TypeLib Specification
TypeLib Not Found
Cannot load TypeLib
Cannot wrap TypeLibs
Cannot modify StaticObjects
Invalid Cookie Specification
Cannot load cookie script source
Invalid include directive
Missing attribute value
Cannot process file
Script Engine Exception
Query OnStartPage Interface Exception
Invalid METADATA tag in Global.asa
Cannot Enable Session State
Mixed usage of Code Page values
Too many concurrent users. Please try again later.
Bad Argument to BinaryRead.
Script isn't transacted. This ASP file must be transacted in order to use the ObjectContext object.
Cannot use IStream on Request. Cannot use IStream on Request object after using Request.Form collection or Request.BinaryRead.
Invalid Default Code Page. The default code page specified for this application is invalid.
Response Buffer Limit Exceeded. Execution of the ASP page caused the Response Buffer to exceed its configured limit.
When we work with customers, quite often they want to know, what is this server/client side stuff, all about?
When you use Outlook 2003 with Microsoft Exchange Server 2003, you can use both server-based and client-side rules. This small article talks about the differences, functions of server side rules vs. client side rules.
Server-based rules can be processed on the server.
For example, a user who uses the mailbox for the delivery location might have a rule that deletes all e-mail messages from a specific alias. Because both the Inbox and the Deleted Items folder are stored on the server, the rule can be processed there without interaction from the client.
Client-side rules require some processing by the client.
For example, a user has a personal folder (.pst) file where e-mail messages of certain types are stored. The .pst file uses a rule that moves all e-mail messages from a specific alias to that folder. In this case, the server cannot perform all the processing because the .pst file is located on the local computer and can be accessed only by Outlook 2003 and not by Exchange Server. Exchange Server 2003 creates a deferred action item on the server that runs the next time that files are synchronized. Because users must run deferred actions, client-side rules may have a very big effect on system performance, particularly when they work over slower connections.
Whenever we send any email from the Outlook client (Outlook 2007) & MS CRM the email bounces back undeliverable with the following message:
This message could not be sent. Try sending the message again later, or contact your network administrator. You do not have sufficient permission to perform this operation on this object. See the folder contact or your system administrator. Error is [0x80070005-0x80070005-0x000508].
The above error code is "Windows General Access Denied" message.
When we investigated and found that,
From today onwards FIFA World cup 2010 going to start and there is already a lot of craze among the soccer fans across the world. Being a hardcore soccer fan, you can find a nice way to keep a schedule of all the matches in your hard drive using Microsoft Excel. I am pretty sure that usually we need to maintain schedules either in paper or checking internet every time, but do you know being computer savy we can use most of it? Yes, you can. This initiative is done by Diego, a Microsoft employee who created the Excel template which can be used to keep track of all the upcoming world cup games, venues, league matches, match timings and also the points table. Ok, here is how the template looks:
Download: You can download the Microsoft Excel template (2007 or later) from http://office.microsoft.com/en-us/templates/TC103911551033.aspx?pid=CT101436151033&AxInstalled=1&c=0 Enjoy the soccer!!
I was playing around debugging a custom app in one of my Windows 7 & Visual Studio 2010. When I tried running msvsmon.exe (Remote Debugging Monitor) and got the following error message when attempting to remote debug:
Error while trying to run project: Unable to start debugging.
This operation returned because the timeout period expired.
During further investigation, I found that the issue is that the firewall is not setup properly on the Win7 machine for remote debugging. I noticed that when msvsmon first launches, it will prompt the user to configure the firewall.
Per the debugger blogpost, this happens due to the firewall security API changes since Vista, the prompt may not come up. I tried the following workaround to move ahead:
Control Panel->System and Security->Windows Firewall: Change notification settings -> enable Notify me when Windows Firewall blocks a new program ->Ok
After implementing the above, I started remote debugging again and this time I can notice that msvsmon shows popup a windows security alert dialog box that prompt to grant access permission to msvsmon.
If you’re developer who use Microsoft Exchange Web Services to develop client applications, then this is for you to download and play around with it.
The Microsoft Exchange Web Services (EWS) Managed API 1.0 Beta provides a managed interface for developing client applications that use Exchange Web Services. The EWS Managed API simplifies the implementation of applications that communicate with Microsoft Exchange Server 2007 Service Pack 1 (SP1) and later versions of Microsoft Exchange. Built on the Exchange Web Services SOAP protocol and Autodiscover, the EWS Managed API provides a .NET interface to EWS that is easy to learn, use, and maintain.
It’s available for both 32 and 64 bit environments: For x64 (64-bit) computers, download and run EwsManagedApi.msi For x86 (32-bit) computers, download and run EwsManagedApi32.msi
It can be downloaded from Microsoft Download Center.
Can we create it programmatically?
To create it programmatically using MAPI, we need to make use of CreateFolder(), the MAPI function. It is necessary to have very special privileges (obtained by opening the store with an EntryID created using IExchangeManageStore::CreateStoreEntryID()) to get it to work.
Please refer the following KB to create Org. forms library programmatically.
How to create Org. Forms Library in Exchange Server 2003 ?
To create a new Organizational Form in Exchange Server 2003, please follow the steps given below:
1. Start Exchange System Manager. 2. Expand the Organization object. Expand your Administrative Group. 3. Expand Folders. Right-click Public Folders. 4. Click View System Folders. 5. In the list of folders present in the right-hand pane, click the EFORMS Registry folder. 6. Right-click the EFORMS Registry folder, then click New. Click Organizational Form. 7. Enter a name for your Organizational Form, and then click OK. 8. Repeat these steps for multiple forms to create the library.
1. Start Exchange System Manager.
2. Expand the Organization object. Expand your Administrative Group.
3. Expand Folders. Right-click Public Folders.
4. Click View System Folders.
5. In the list of folders present in the right-hand pane, click the EFORMS Registry folder.
6. Right-click the EFORMS Registry folder, then click New. Click Organizational Form.
7. Enter a name for your Organizational Form, and then click OK.
8. Repeat these steps for multiple forms to create the library.
Note: 1) How to create copies of organizational forms library?
In Exchange Server 2003, to create copies of the Organizational Forms Library on other servers, click the Replication tab, and then type the name of server that you want to contain the copy of the Organizational Forms Library.
2) How to set the storage limits for an organizational forms library?
To set storage limits for an Organizational Forms Library, click the Limits tab. To create a description of an Organizational Forms Library, click the Details tab. To set permissions for each user, click the Permissions tab.
How to create Org. Forms Library in Exchange Server 2007 ?
Per the KB, you need to follow the following method to create an Organizational Forms Library as it got changed in Exchange 2007.
To create an Organizational Forms Library in Exchange 2007, follow these steps.
1. Create a new public folder.
a. Click Start, point to All Programs, click Microsoft Exchange Server 2007, and then click Exchange Management Shell. b. Run the following command at the Exchange Management Shell prompt: New-PublicFolder -Path "\NON_IPM_SUBTREE\EFORMS REGISTRY" -Name "My Organizational Forms Library" Note: You can use the Exchange management shell on any version of Exchange 2007 to create a folder. However, in Exchange 2007 SP1, you can also create the EFORMS REGISTRY folder by following these steps: a. Go to Toolbox in Exchange Management Console. Double-click Public Folder Management Console. b. In the left pane, click System Public Folders. c. in the Action pane, click New Public Folder. Type EFORMS REGISTRY as the folder name, and then click NEW. d. After the folder is created, click Finish to exit the wizard.
a. Click Start, point to All Programs, click Microsoft Exchange Server 2007, and then click Exchange Management Shell.
b. Run the following command at the Exchange Management Shell prompt: New-PublicFolder -Path "\NON_IPM_SUBTREE\EFORMS REGISTRY" -Name "My Organizational Forms Library"
Note: You can use the Exchange management shell on any version of Exchange 2007 to create a folder. However, in Exchange 2007 SP1, you can also create the EFORMS REGISTRY folder by following these steps:
a. Go to Toolbox in Exchange Management Console. Double-click Public Folder Management Console.
b. In the left pane, click System Public Folders.
c. in the Action pane, click New Public Folder. Type EFORMS REGISTRY as the folder name, and then click NEW.
d. After the folder is created, click Finish to exit the wizard.
2. Add the PR_EFORMS_LOCALE_ID.
a. Use an account that belongs to the Exchange Administrators Group to log on to a client computer that is running Microsoft Office Outlook 2003 or a later version of Microsoft Outlook. b. Start the Microsoft Exchange Server MAPI Editor (Mfcmapi.exe) from the MFCMAPI folder. c. Create a MAPI profile if it is necessary. d. On the Session menu, click Logon and Display Store Table. Select MDB menu, click Open Public Folder Store, and then click OK. e. Expand Public Root, expand NON_IPM_SUBTREE, and then expand EFORMS REGISTRY. f. Click the public folder that you created in step 1. For example, click My Organizational Forms Library. g. Click the PR_URL_NAME property. On the Property Pane menu, click Modify Extra Properties. Click Add, and then click Select Property Tag. h. Click PR_EFORMS_LOCALE_ID in the list, and then click OK. Click OK two times. A red mark is displayed next to the newly created PR_EFORMS_LOCALE_ID property. i. Double-click PR_EFORMS_LOCALE_ID. In the Unsigned Decimal box, type the desired locale ID, and then click OK. For example, type 1033 for English, type 1040 for Italian, or type a different ID for a different locale. Note: To determine the locale ID for other locales, visit the following Microsoft Web site: http://msdn2.microsoft.com/en-us/library/aa579489.aspx (http://msdn2.microsoft.com/en-us/library/aa579489.aspx) j. Exit MAPI Editor.
a. Use an account that belongs to the Exchange Administrators Group to log on to a client computer that is running Microsoft Office Outlook 2003 or a later version of Microsoft Outlook.
b. Start the Microsoft Exchange Server MAPI Editor (Mfcmapi.exe) from the MFCMAPI folder.
c. Create a MAPI profile if it is necessary.
d. On the Session menu, click Logon and Display Store Table. Select MDB menu, click Open Public Folder Store, and then click OK.
e. Expand Public Root, expand NON_IPM_SUBTREE, and then expand EFORMS REGISTRY.
f. Click the public folder that you created in step 1. For example, click My Organizational Forms Library.
g. Click the PR_URL_NAME property. On the Property Pane menu, click Modify Extra Properties. Click Add, and then click Select Property Tag.
h. Click PR_EFORMS_LOCALE_ID in the list, and then click OK. Click OK two times. A red mark is displayed next to the newly created PR_EFORMS_LOCALE_ID property.
i. Double-click PR_EFORMS_LOCALE_ID. In the Unsigned Decimal box, type the desired locale ID, and then click OK. For example, type 1033 for English, type 1040 for Italian, or type a different ID for a different locale. Note: To determine the locale ID for other locales, visit the following Microsoft Web site: http://msdn2.microsoft.com/en-us/library/aa579489.aspx (http://msdn2.microsoft.com/en-us/library/aa579489.aspx)
j. Exit MAPI Editor.
3. Configure limits and permissions for the Organizational Forms Library folder. Note: You can use suitable cmdlets in the Exchange Management Shell to set limits and permissions for the Organizational Forms Library folder.
a. To set storage limits, use the following cmdlet: Set-PublicFolder b. To set permissions for each user, use the following cmdlets: Add-PublicFolderClientPermission, Add-PublicFolderAdministrativePermissions
a. To set storage limits, use the following cmdlet: Set-PublicFolder
b. To set permissions for each user, use the following cmdlets: Add-PublicFolderClientPermission, Add-PublicFolderAdministrativePermissions
Anticipation for Kinect swells with sold-out pre-orders, ad campaign launch, special appearances on two of America’s top daytime talk shows. Today, the countdown to Kinect begins, as Microsoft Corp. announced the launch of a multiyear advertising campaign and revealed the complete line-up of 17 controller-free games that will transform living rooms around the world starting on Nov. 4.
With 17 Kinect-enabled titles debuting in November, Kinect for Xbox 360 offers something for gamers (and nongamers) of every stripe.
• “Kinect Adventures” (Good Science Studio/Microsoft Game Studios), included with every Kinect sensor Float in outer space. Experience the thrill of roaring rapids. Tackle mountaintop obstacle courses. And dive into the deep sea to save a leaky underwater observatory — all from your living room. With “Kinect Adventures,” you are the controller as you jump, dodge and kick your way through exciting adventures set in a variety of exotic locations. “Kinect Adventures” is designed with something for everyone to enjoy and will be available with every Kinect sensor and Kinect bundle sold.
•“Kinectimals” (Frontier Developments Ltd./Microsoft Game Studios), limited collector edition. “Kinectimals” invites children, their parents and animal lovers of all ages to build lasting friendships with some of the world’s most exotic creatures. Just like real pets, your feline cubs will come running when they hear your voice, respond to commands such as “jump,” “roll over” and “play dead,” and purr with joy when you scratch them behind their ears. Limited collector’s editions of the “Kinectimals” game packaged with a 7” plush toy that unlocks a new animal and toy in the game will be available exclusively at Toys “R” Us and GameStop.
•“Game Party™: In Motion” (Warner Bros. Interactive Entertainment) The popular party game value series comes to Kinect for Xbox 360. “Game Party: In Motion” lets players engage in true-to-life motions with 16 games appealing to people of all ability levels, ranging from sports such as Hoop Shoot and Darts to arcade and party games, including Rootbeer Tapper, Table Hockey and more.
•“Harry Potter and the Deathly Hallows — Part 1 The Videogame” (Electronic Arts/EA Bright Light) “Harry Potter and the Deathly Hallows — Part 1 The Videogame” is the most challenging yet, packed from start to finish with action and combat. Playing as Harry, you are on the run from the opening sequence, fighting for survival on a desperate and dangerous quest to locate and destroy Voldemort’s Horcruxes. And with 22 exclusive Kinect challenges, conjure the weapons of magical warfare where your motions make the magic, only on Xbox 360.
•“Your Shape™: Fitness Evolved” (Ubisoft) With Kinect for Xbox 360 and “Your Shape: Fitness Evolved,” you will experience the most advanced fitness technology available, your way and on your schedule. The advanced feedback system detects when your body is out of alignment and coaches you to correct your form. Personalize your workout, challenge your friends and share your progress while achieving real results.
•“Dance Central” (MTV Games/Harmonix) From the creators of “Rock Band” comes the next great music experience: “Dance Central,” the first controller-free, body tracking, fully immersive dance video game that helps you take your moves to the next level. Featuring more than 90 routines and 650 dance moves, every routine has authentic choreography for beginners and experts alike to master, alongside a killer soundtrack that spans today’s current pop, hip-hop and R&B artists. You won’t just learn the dance moves — you’ll own the dance floor.
•“The Biggest Loser Ultimate Workout” (THQ) Based on the hit television show, “The Biggest Loser Ultimate Workout” comes to Kinect offering the ultimate workout experience. Complete your fitness program using the interactive motion control sensors providing real-time feedback. From a body analyzer and recipes to personalized tips and a video diary to track your journey, “The Biggest Loser Ultimate Workout” fitness game has it all to drop the weight and change your life.
• “DanceMasters” (Konami) The pioneer of the franchise that started the dance game craze, Konami introduces a brand new way to experience music and rhythm. The next generation in full-body dancing is finally here.
•“EA SPORTS Active 2” (EA SPORTS) “EA SPORTS Active 2” with Total Body Tracking will combine motion tracking from Kinect and heart rate data from the included wireless heart rate monitor to provide true fitness results. Users will be able to track and share their workout data online through automatic uploading from their online connected Xbox 360 consoles to their personalized EA SPORTS Active profile.
• “Zumba Fitness®” (Majesco) Join the party with “Zumba Fitness,” a one-of-a-kind, dance fitness workout set to sexy, high-energy Latin and international music. Find your rhythm and let go as “Zumba” instructor fan favorites Gina Grant, Tanya Beardsley and “Zumba” creator, Beto, guide you through 30 routines that will work you into a sweat and make you forget you’re even exercising.
• “Kinect Sports” (Rare/Microsoft Game Studios) The first full-body, controller-free sports game that lets you physically compete with friends over Xbox LIVE, “Kinect Sports” is so real, you will almost feel the wind in your hair as you fly over hurdles and the sand in your toes as you set, bump and spike your way to volleyball victory. With six full sports — Soccer, Beach Volleyball, Track & Field, Boxing, Bowling and Table Tennis — “Kinect Sports” is the only title with a Team vs. Team mode, allowing the whole family to play in a fast-paced tournament style competition.
• “MotionSports™” (Ubisoft) Grab your friends and rush the living room, it is time to catapult into the wide world of “MotionSports.” Race down the slopes of a Super G slalom, score a mind-blowing penalty kick, duck-and-run your way to a game-winning touchdown, or throw punches at the champ as you test your skills in more than 40 awesome sports challenges. The “MotionSports” live in-game commentary will follow your hits and misses, as you compete to go from local hero to a global sports phenomenon.
• “DECA SPORTS FREEDOM” (Hudson Entertainment) Hudson Entertainment is taking sports to the next level with 10 sporting events you play using your own body in “DECA SPORTS FREEDOM.” No controller necessary — just move yourself as if you were playing the sport in real life. Spin, throw and smash your way to victory across all of the included events: tennis, boxing, archery, paintball, beach volleyball, dodge ball, kendo, mogul skiing, snowboard cross, and even figure skating.
• “Kinect Joy Ride” (Big Park/Microsoft Game Studios) “Kinect Joy Ride,” the first controller-free racing game, will take you and your friends on the ride of your lives — no driver’s license required. “Kinect Joy Ride” combines wild kart-racing excitement with the effortless fun of full-body gaming possible only with Kinect for Xbox 360. Go solo or compete with up to eight players over Xbox LIVE to take on the world.
•“ADRENALIN MISFITS” (Konami) “Adrenalin Misfits” thrusts gamers into unbelievable fantasy worlds with exciting, sideways-stance boarding battles in amazing environments. It's not just a race, it’s a battle!
•“Fighters Uncaged” (Ubisoft) Charge head-first into the vicious world of illegal free-fighting tournaments, where you will use every muscle in your body to battle your way to the top. Forced into a secret tournament, Simon must use what he learned from his father, an ex-boxing champ, as he faces off against violent combatants who will brutally unleash a range of mixed martial arts attacks to take him down. No guns. No blades. Your body is the deadly weapon.
•“SONIC FREE RIDERS™” (SEGA) Sonic is speeding onto Kinect for Xbox 360 in an action-packed experience unlike any other. Become your favourite character as you jump on your board and compete in adrenaline-fuelled races against tough competition. For the first time use full-motion body control to twist and turn your way through a range of stunning courses. For more information, visit http://www.kinectholiday.com and Microsoft News Center’s Press Pass. Also follow Kinect on Facebook as we tour the world, transforming how people experience games and entertainment. More information is available at http://www.facebook.com/xbox.
Are you ready for the party?
Take a scenario, there are some email messages where recipients shouldn’t be allowed to ‘Reply to all’ or something important to block “Reply All” feature to get replies from a big distribution list (DL). I found that there is a way in Outlook 2007 to disable the option and prevent users from using it.I tried disabling “Reply to all” button for the email items in Outlook 2007 using ADM templates (non-developer perspective).
I used the following steps to get things done:
Have you tried programmatically combining the two powerful enterprise tools: SQL Server 2005 (table-valued user-defined functions) with Exchange Server 2007(Exchange Web Services)? I followed the Microsoft article written by Jim Kleewein and Ray Dixon, which talks about how we can combine the SQL Server tables and Exchange Web Services to provide data from both Microsoft Exchange and SQL Server to client applications so that the data appears as if it were stored in SQL Server.
SQL Server tables:
Table-valued user-defined functions in SQL Server return a table, much like a SQL Server view, but provide for much more powerful logic. Exchange Web Services:
Exchange Web Services in Exchange 2007 provides access to Exchange store items and information, such as message, contact, task, and calendar items and availability information.
SQL Server tables & SQL Server tables:
When you combine these technologies, you have a formidable new way to integrate, search, and analyze your Microsoft Exchange messaging data by using the full power of SQL Server, and to combine that messaging data with virtually any other data managed by, or available from, SQL Server.
Still, what you can achieve?
Per the article, by combining these technologies, you can:
This list provides some ideas, but is not all-inclusive.
How can i start to create a sample or with an existing sample to see how it works?
I found a downloadable sample demonstrates a powerful integration of Microsoft® Exchange Server 2007 and Microsoft SQL Server™ 2005 features. This integration enables you to provide data from both Microsoft Exchange and SQL Server to client applications so that the data appears as if it were stored in SQL Server.
So what will be the process workflow for it? Per the article, it talks about the following SQL Server tables and Exchange Server workflow. The following figure shows the process that the SQL Server Tables and Exchange Web Services sample with the following steps:
Just i tried this. So, what are you waiting then, please follow through the above articles and practices mentioned there. I am sure you’ll love this…