Skip to main content


Showing posts from March, 2006

Displaying the Junk-Email setting of all users on a Server (Exchange 2003)

I got a good question this week about one of my previous posts about displaying and setting junk Email setting on Exchange 2003. What this person wanted to do was display the junkemail setting of all users on a server so they could see who had enabled junk email filtering in OWA. This was a good idea which I thought could be expended a little further an also include reporting on the junk email settings from Outlook 2003 as well. So what I’ve done is put together a script that creates a CSV file that shows you firstly weather the Extended Junk Email rule has been created in a mailbox, If junk email filtering is enabled in OWA, what level junk email filter has been set to in Outlook 2003 and what the delete setting is set to in Outlook 2003. What you end up with is a pretty useful little report on how people are using the Junk Email filtering setting in Outlook and OWA on your server. I’ve created two versions of the script the first is a WebDAV version which can be run locally or remo

Replicating an Exchange Folder using WebDAV Replication and CDO 1.2

One of the lesser know and cooler (well I think) features of WebDAV with Exchange is the ability to perform replication of a collection (or a folder). The Exchange SDK has some documentation on how this works and the general plumbing of how you structure requests and responses. Previously I had a script that would copy contacts between a public folder and mailbox this was a pretty simple script with no intelligence so it would produce duplicates if it was run twice etc. I wanted something that would go a little further then this script and allow full one way sync of a private contacts folder with a public contacts folder so basically a script that could be run at intervals and any updates to the private contacts folder such as changes of email addresses, phone number, addition of contacts or deletion of contacts would be reflected in the public contacts folder. For this combining the original CDO 1.2 script to copy contacts (the reason that CDO is used to do the copy instead of WebDAV

Using Monad to query an Exchange Mailbox via WebDAV to display Unread Emails

I’ve had a chance this week to play around a bit more with MSH and the .NET 2.0 framework and thought I’d share this sample that uses the .net framework to query an Exchange mailbox via WebDAV to display the number of unread email in a mailbox and the subject of the unread email. One of the good things with monad is that you can use both Com and .NET objects pretty easy so all the Microsoft.http browser object stuff will still work but its better to use the new stuff whenever you can. Vivek and Lee Holmes have come up with a good sample of doing a http get using Monad. This helped along with the basic .NET sample from the Exchange SDK in coming up with a simple script that queries an Exchange mailbox using the currently logged on users credentials for any email that is unread. The query itself is a simple WebDAV search that looks for any mail in the inbox folder where the urn:schemas:httpmail:read property is false. The script itself takes two command-line parameters which is the se

Updating appointments that are 1 hour out because of the Commonwealth Games Timezone Changes

Since i posted this last month I had a few questions around updating appointments that appear 1 hour out after you have updated the Timezone patch for the Commonwealth games. Firstly the only supported method of updating affected appointment is in which is to export the appointments in the overlap period to a text file, delete the appointments and then re-import those appointments. One completely unsupported method to update appointments is to use CDOEX and Exoledb to move the appointment times one hour into the past for appointments that exists in the overlap period. One issue with using this method is that if you have any reoccurring appointments that have been expanded within the overlap period then changing the date and time on these instances of the recurring appointments will break the recursion on that instance of the expanded appointment so although outlook will show the appointment now occurs at the right time is will s
All sample scripts and source code is provided by for illustrative purposes only. All examples are untested in different environments and therefore, I cannot guarantee or imply reliability, serviceability, or function of these programs.

All code contained herein is provided to you "AS IS" without any warranties of any kind. The implied warranties of non-infringement, merchantability and fitness for a particular purpose are expressly disclaimed.