Dan's WebDAV 101

This blog covers Messaging API development for Exchange and Outlook. My name is Daniel Bagley, I'm on the Messaging Developer Team.

Browse by Tags

Tagged Content List
  • Blog Post: Taking Dumps with the ADPlus executable

    ADPlus from the Debugging Tools can be used to get Crash Dumps and Hang Dumps which would contain the most-needed information for debugging. It used to be a vbscript file which was used to attach the cdb debugger (cdb is a command line debugger). Now ADPLus is a managed code application. Because of this...
  • Blog Post: Howto: Example to retrieve the body property of a message using the Exchange Managed API.

    public string GetItemMime(ItemId oItemId) { string sReturn = string.Empty; PropertySet oMimePropertySet = new PropertySet(ItemSchema.MimeContent); Item oItem = Item.Bind(_ExchangeService, oItemId, oMimePropertySet); return oItem.MimeContent.ToString() ; } public string GetItemMime...
  • Blog Post: Howto: Example to retrieve the html body property of a message using the Exchange Managed API.

    public string GetMessageBodyAsHtml(Item oItem) { string sRet = string.Empty; PropertySet oPropSet = new PropertySet(PropertySet.FirstClassProperties); oItem.Load(PropertySet.FirstClassProperties); PropertySet oPropSetForBodyText = new PropertySet(PropertySet.FirstClassProperties...
  • Blog Post: Howto: Example to retrieve the body property of a message using the Exchange Managed API.

    public string GetMessageBody(Item oItem, BodyType oBodyType) { string sRet = string.Empty; PropertySet oPropSet = new PropertySet(PropertySet.FirstClassProperties); oItem.Load(PropertySet.FirstClassProperties); PropertySet oPropSetForBodyText = new PropertySet(PropertySet.FirstClassProperties...
  • Blog Post: Howto: Read OOF info using EWS and VBScript against an Exchange 2010 SP1

    ' Here is a code sample showing how to read OOF info using EWS from VBScript against an Exchange 2010 SP1 box. Const strUrl = " https://mail.mycompanyetc.com/ews/exchange.asmx " ' TODO: Change Const strUser = "myuserid" ' TODO: Change Const strPass = "mypassword" Const strDom = "myusersdomain...
  • Blog Post: Don't redistribute product DLLs unless you know its safe and legal to do so.

    Redistribution of files in the “ C:\Program Files\Microsoft\Exchange Server ” folder and sub-folders is not advised/supported. Yes, this does include the “C:\Program Files\Microsoft\Exchange Server\Public” folder also. These files are installed when the Exchange 2007 (or later) tools are installed. If...
  • Blog Post: Links on Common Exchange Web Services (EWS) Questions

    I've put together a list of articles which cover common questions on Exchange Web Services (EWS). These links cover issues from starting out to common problems. I hope they help. Please let me know if there is anything important to add. Getting Started: Web Services http://msdn.microsoft...
  • Blog Post: Links on Common PowerShell Automation Questions

    I've put together a list of articles which cover common questions on Exchange PowerShell Automation. These links cover issues from starting out to common problems. I hope they help. Please let me know if there are others you see as important. Starting articles on automation: Using Exchange...
  • Blog Post: Howto: Calling Exchange Powershell from an impersonated thread.

    There are not many examples on doing doing impersonation for Exchange Powershell and non of the ones I see currently cover a few of the important gotccha’s. So, I put this together and wish to share. Impersonation and Exchange PowerShell: In order to do impersonation on a thread and have...
  • Blog Post: Howto: Getting Process IDs

    There are many ways to get a list of processes with their PID. Here are a few. tlist: "tlist" is in the debuggers folder and can be used to get the pid of a running process: Helpful tlist commands. · tlist /t - Displays a task tree in which each process appears as a child of the process that...
  • Blog Post: Howto: Verifying Symbols after taking a Dump

    Once the symbols and dump are received by the person who will be debugging, they can use the commands below to check for the symbols being loaded in a debugger such as Windbg after the symbol path is set. To do this, go into windbg in the debuggers folder and open the dump. Next, enter the commands below...
  • Blog Post: Howto: Verifying Symbols before taking a Dump using symchk

    Prior to taking a dump on a program, you should be sure that there are matching symbols for the application the dump is being taken on. Large dumps can take many hours to upload to a person for debugging. You can validate symbols against the executable before a dump is taken in order to prevent the wrong...
  • Blog Post: Howto: Generate a Mini-Dump with Task Manager in Vista

    With Vista, you can create a mini-dump by right clicking on the process in Task Manager. However, user-mode process dump information is not available by using this feature. This feature is not available under Windows 2003 or Windows XP.
  • Blog Post: Howto: Take a dump in Visual Studio

    When an application crashes, the user may only have Visual Studio on the box. When the crash occurs, the developer may be prompted to see if they wish to debug the appliction. If they can choose Visual Studio, then they can save the dump to a file which can be looked at with windbg later. 1) On the...
  • Blog Post: Howto: Generating a Hang Dump with adplus

    Adplus from the Debugging Tools can be used to get Hang Dumps. Normally, you want to take at least 2 dumps to so the person debugging can get an idea of where the hang is. Installing Adplus and the Debugging SDK: 1) Go to http://www.microsoft.com/whdc/devtools/debugging/default.mspx and download...
  • Blog Post: What's covered by support? General questions and answers.

    Customers sometime have a misunderstanding of what is covered when supported is provided. So, I’ve put together a link covering common areas for all to read. I would suggest starting with the link below to get an understanding on what is supported to understand some of the basics of supportability. ...
  • Blog Post: Santa, I want it all - WebDAV and the full-meal-deal - allprops.

    So, your trying to get "all properties" using WebDAV. Well, hate to break it to you, but there is no way unless you know what every property is and specify it. You will find the same limitation in other messaging APIs - just pick any of them. Now, you can get many and an even almost every property without...
  • Blog Post: mailto - limitations and paths forward

    The mailto tag used in html content is used to load the default mapi client (email client) on the user's box when its link is clicked and have it display a window for sending email. The mailto link can contain basic information such as who the message, subject, etc. There are however some limitations...
  • Blog Post: Howto: Read Attachments - Webdav: System.Net.HttpWebRequest vs System.Net.WebClient

    I’ve run into issues with using a GET to read large attachments using HttpWebRequest. Because of this, I use System.Net.WebClient instead. Big attachments will have an error thrown back with HttpWebRequest, however it’s possible to GET the smaller ones. So, since System.Net.WebClient seems to work just...
  • Blog Post: Enumerating fields for CDOSYS, System.Web.Mail and System.Net.Mail

    There are times when you may want to enumerate the fields set on a message while debugging issues with CDOSYS, System.Web.Mail, or System.Net.Mail. Below is sample code which will enumerate these fields. As you can see, there are some considerable differenences between how enumeration is done. CDOSYS...
  • Blog Post: HOWTO: Set and Get the a multibyte (Japanese, Chinese, Etc) custom header with CDOSYS

    Custom headers in multibyte languages (Japanese, Chinese, etc) will not be encoded properly when set using CDO alone. They may appear to be correctly set, however when read back on a recieved message they may be messed-up. Here is an example of a Japanese header: I had a case where a customer wanted...
  • Blog Post: Howto: Add a body part to a message using CDOSYS.

    The sample below shows how to add an additional body part to a message using cdosys. This example demonstrates adding a "text/calendar" (vcalendar) body part, however it should be possible to use this to add "text/plain", "text/html" and other types. In the sample, "this.VCalendarText" holds the text...
  • Blog Post: Howto: Add a body part using System.Net.Mail

    The sample below shows how to add an additional body part to a message using System.Net.Mail. This example demonstrates adding a "text/calendar" (vcalendar) body part, however it should be possible to use this to add "text/plain", "text/html" and other types. In the sample, "this.VCalendarText" holds...
  • Blog Post: Example of setting headers with System.Web.Mail

    //============================ Optional Settings ======================== if (this.Priority.Length != 0) { if (this.Priority == "Non Urgent") { oMsg.Priority = System.Web.Mail.MailPriority.Low; }; if (this.Priority == "Normal") { oMsg.Priority = System.Web.Mail.MailPriority.Normal; }; if (this.Priority...
  • Blog Post: Example of setting headers with CDOSYS

    //============================ Optional Settings ======================== if (this.Priority.Length != 0) { // Well... it seems that priority is not what needs to be set to get priority set... // Looks like setting importance will set priority... at least for cdosys... hmmm if (this.Priority == "Non...
Page 1 of 3 (52 items) 123