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: How to get OOF text from Exchange 2003 using WebDAV

    You may be able to get OOF text with WebDAV using a SEARCH. However, its not supported in any way and there is no guarentee that it will always work. The OOF text is stored inside of a hidden item in a mailbox. Below is a sample of the request which is for educational purposes only. Please note that...
  • Blog Post: OWA Single-sign-on support

    OWA 2010 and prior is considered non-extensible as far as Microsoft is concerned in the area of doing single-sign-on programmatically. The exception to this would be when a person is in-network and uses their existing network credentials to access OWA through Windows Authentication. Please understand...
  • Blog Post: OWA Web Part in an iFrame sample

    I have not seen any examples of using OWA parts in an iFrame. However, I wrote such a sample recently and wanted to share it. The full OWA UI in an iFrame is not supported and its expected that doing so may fail at any given point and at different points depending upon the service pack and hotfix...
  • Blog Post: The importance of EWS Impersonation while using an application account.

    Developers of applications which require access to user mailboxes often struggle with the choice between the Impersonation and Delegation access methods. While both provide programmatic rights to mailbox objects, they are designed to meet rather different needs, and for situations where a single account...
  • Blog Post: Inline attachments used with EWS and Text, HTML, MHTML or MIME

    Exchange Web Services has three different ways to set message body content when working with messages – setting the Text body, setting the html body or creating the message using email MIME (note that there are different types of MIME). Images which are directly with HTML content are not supported...
  • Blog Post: How to check for calendar corruption.

    A corrupt calendar item can reallly mess-up a custom application and even some very seasoned applications. If there is a corrupt item/items, then those should be cleared-up ASAP before trying to do some sort of code work-around. If you are suspecting calendar corruption, you should consider using one...
  • Blog Post: EAS 177 response code or Why cant I sync any more devices.

    Exchange allows you to sync a max of 10 devices agains a mailbox. Each time you sync a new device, a sync partnershipe is created. You can view thes sync pertnerships in OWA. Most users will never see this error code; however, IT professionals who test and develop EAS devices will sometimes run into...
  • 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: EWS Autodiscovery Checker

    I have written a sample which can be used by developers and Exchange Admins for handling issues with their custom code doing Autodiscovery. I have and several others have used this sample as a base-line for testing and for code harvesting for a while. I wanted to share this with you so that you might...
  • Blog Post: Microsoft Developer Support does not write or maintain customer production code.

    Microsoft Developer Support does not write or maintain customer production code. If you want Microsoft to do the changes and implement production code, then MCS would be the more appropriate Microsoft organization. Also, you could engage a Microsoft Partner, or any other third party developer entity...
  • Blog Post: How to tell which authentication protocols can be used with WebDAV.

    When you do an anonymous POST to the “exchange” virtual folder, you will get back a response which will tell you about which authentication protocols are supported. Each “WWW-Authenticate:” header in the response tells you which type of authentication method is supported. If you...
  • Blog Post: New to Exchange ActiveSync Development?

    One area I do developer support for is EAS development with those who have an EAS client developmnet license and have a specific support agreement in thier Premier contract for EAS developer support - these are needed to get any EAS developer support from Microsoft. Developers who do not have these should...
  • Blog Post: Howto: Using EWS, get the original body type of a message without getting the best body of the message.

    The PidTagNativeBody property (Property ID, 0x1016; Data Type 0x0003 (PtypInteger32)) should reflect the format of the body when a normal email message arrives in the inbox (not counting calendar messages such as meeting requests, etc.). If the message is signed, you would need to dig into it to figure...
  • Blog Post: Howto: Set the organizer of a meeting on the calendar of an attendee using EWS.

    I would like to say that this is something which is easily possible - however, I cannot. Setting the organizer directly in code is not supported. Historically, having the organizer over-writable has caused some pretty bad situations for customers. When a meeting is created, the organizer property is...
  • Blog Post: Use Exchange PowerShell to get statistical information for Exchange Server ActiveSync

    Background: To get information on EAS activity on an Exchange server, you will need to call Exchange PowerShell cmdlets. PowerShell is used for doing administrative work against Exchange. Each administrative task is done through an Exchange cmllet (command-let). Exchange PowerShell cmdlets can be...
  • 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: WebStoreExplore 1.8.3 is now public

    In the past, the team I belong to has made vailable "super samples" which provide a broad range of coverage-by-example around specific messaging APIs - these are often referred to as API Explorers. Two examples of these are MFCMAPI (for Extended MAPI) and EWSEditor (Exchange Web Services). There is a...
  • Blog Post: Consider the full impact of Exchange Set-MailboxCalendarSettings and Set-CalendarProcessing before changing settings

    Many messaging developers and Exchange administrators are not aware of possible effects of MailboxCalendarSettings settings. While these options provide much needed capabilities which remove the need for specialized code, caution should be exercised as MailboxCalendarSettings can drastically affect any...
  • 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: Howto: Determine which Process Is It Running Under (Exchange and Outlook Development/Admin related)

    Understanding which process to use for tracing or taking a dump can be difficult if you are not familiar with where to look. This sections covers the where to look part. Desktop Application: Desktop applications will appear in their own process. COM+ Application: If the COM+ service...
  • Blog Post: How to get the original body type of a message without getting the best body of the message using EWS.

    The PidTagNativeBody property (Property ID, 0x1016; Data Type 0x0003 (PtypInteger32)) should reflect the format of the body when a normal email message arrives in the inbox (not counting calendar messages such as meeting requests, etc.). If the message is signed, you would need to dig into it to figure...
  • Blog Post: GetUserAvailability errors with non-DST timezones using the Exchange Managed API 1.0.

    If you see "The Month parameter must be in the range 1 through 12." thrown using the 1.0 version of the Exchange Managed API when dealing with non-DST timezones, then you should look at upgrading to the 1.1 version of the Exchange Managed API - the issue should be fixed in that version.
  • Blog Post: Detecting Heap Corruption Using GFlags and Dumps

    Heap corruption is very bad since it means that memory in the process is smashed (overwritten). This typically occurs when an application allocates a block of heap memory of a given size and then writes to memory addresses beyond the requested size of the heap block. Heap corruption can also occur when...
Page 1 of 7 (159 items) 12345»