Exchange Server 2007 is missing native support for catch-all functionality,which redirects messages sent to nonexistent recipients to valid addresses. This ensures that a message won't be lost; it will bounce to another mailbox so an actual user can to decide who should receive the message.
At CodePlex, Microsoft's open-source project site, wilbertdg decided to implement this missing functionality for Exchange 2007 in the form of a transport protocol agent called the CatchAllAgent. This agent is written in C# with source code included; it's licensed under the terms of the Microsoft Public License.
The agent consists of two components -- a .dll file (dynamic link library) and a config.xml file. To set up the CatchAllAgent, you need to copy both of these files into one folder on the Exchange 2007 server you use as an Internet-facing server, typically either an edge server or hub transport server.
The exact location of the server doesn't matter as long as there are no permissions problems with its directory. If you already have a common location for these types of agents, then use that.
Edit the config.xml file to add a list of domain names and catch-all addresses for that domain. You may find an example of this in the documentation for the program or included as a header in the source code. This is a great example of source as documentation. Finally, use the install-transportagent and enable-transportagent tasks to add the agent to Exchange and run it.
During installation, make sure that the CatchAllAgent has a lower priority than the Recipient Filtering agent. You can find details for doing this in the instructions; if you have other agents installed in the stack, you should think about whether or not the priorities should be higher or lower than the CatchAllAgent. It's good practice to start provisionally with CatchAllAgent at the bottom of the stack and see if other third-party agents should be placed above it or below it.
Any changes you make to the config.xml file will be detected automatically, so there's no need to stop and restart anything -- even if you have to add bulk domains into the configuration file. The documentation states that the agent will ignore any changes that invalidate the config.xml file. For example, the agent will choose to run a loaded configuration instead of not running at all.
A configuration code snippet is also included that you can add to the configuration file for EdgeTransport.exe to provide diagnostic trace logging for the component. This provides detailed debugging information in case the code isn't functioning properly.