Exchange 200x Catchall Script, Version 2

Originally published December 28, 2005

(Note November 13, 2007: this works with Exchange 2000 and Exchange 2003; but not Exchange 2007 and above.)


I've been promising an update to my Exchange Catchall script, since almost the week it was first released.

The number one request has always been for it to handle more domains (the original version only handled two, and changing it to handle more was beyond the scripting skills of most folks).

The second most common request was to allow multiple copies of the script to run (usually because of the number one request). While that can be done by using multiple SMTP virtual servers, I don't recommend it. With this update, it shouldn't ever be necessary.

Philosophically, the days of catchall mailboxes are probably numbered. Many messaging experts recommend against them. Once a domain is targeted, a directory harvesting attack can cause catchall mailboxes to get slammed with thousands of messages in a very short period of time. Many mail systems now return an error, or drop the SMTP connection, or refuse connections from SMTP servers that send email to invalid addresses. (Exchange could be fairly easily extended to do those things, but it would require a protocol sink, not an event sink.)

However, many folks still want a catchall mailbox. Most mail servers other than Exchange support them in the base product. This is a nice simple implementation of one and this version supports an arbitrary number of domains.

The original version was tested on both Exchange 2000 Server and Exchange Server 2003. I no longer have an Exchange 2000 Server to test on, but none of the interface layer changed in this update, so the new version should still work on both versions of Exchange.

You can download the Exchange 200x Catchall Script, Version 2, here.

I am not aware of any other free tool that performs this function for multiple domains (Mailbasket Lite from will do it for a single domain).


Published Tuesday, November 13, 2007 8:23 PM by michael
Filed under: , ,


Thursday, April 10, 2008 7:19 AM by Michael's meanderings...

# Exchange 2007 Catchall Mailbox

I wrote and supported two versions of a Catchall Mailbox script that worked with Exchange 2000 Server

Sunday, November 16, 2008 9:03 PM by r33rckt

# re: Exchange 200x Catchall Script, Version 2

Hi Michael

I am trying to get this script to work on my exchange server i fist tried the mail basket option that you mentioned but it catches ALL email not just email that doesnt match a recipient.

I have since Implemented your script and it appears to be working but only for mail that originates from inside the network

I was wondering if you have seen this issue before and what you would recommend

im of the opinion that you script is not the issue and that it is most likely an issue with my exchange server

Thanks And Regards Matt

Tuesday, November 25, 2008 7:44 AM by michael

# re: Exchange 200x Catchall Script, Version 2

Almost certainly, you have Recipient Filtering turned on.

If you think about it, I'm sure you can see why Recipient filtering and a catch-all mailbox are incompatible. :-)

Monday, April 27, 2009 7:54 AM by swests

# re: Exchange 200x Catchall Script, Version 2

Hi Michael

Firstly, may I say what a great resource you have here.  A truly great find!

With regards to the script, which I'm not running, I was wondering if there was a way to see the original email address that the re-addressed message was sent to?  E.g. When i send a message to I have it redelivered to  When I view the email in outlook the To: entry is blank...

Any thoughts?

Many thanks


Thursday, May 07, 2009 10:42 AM by michael

# re: Exchange 200x Catchall Script, Version 2

@swests - You should be able to look at the original message headers from within Outlook to determine the Sender. In Outlook 2007, click on the Options button and examine the section named "Internet Headers."

# Script to modify the to mail header on inbound mail | keyongtech

Pingback from  Script to modify the to mail header on inbound mail | keyongtech

Tuesday, September 15, 2009 2:59 PM by polyzor

# re: Exchange 200x Catchall Script, Version 2

Hi Michael,

Thanks a lot for the great script!

I was wondering if you can assist with the problem  I started to get after I implemented this script. Now the non-English subject of the email messages in UTF-8 format is converted to ??? (question marks). Problem disapears once I unregister the script. Your advise is greatly appreciated...

# Catch-all email mailboxes in Exchange at Some Notes in Microsoft

Pingback from  Catch-all email mailboxes in Exchange at Some Notes in Microsoft