[This is preliminary documentation and subject to change.]
The following are examples of applications that can be implemented using SMTP service events:
Virus Scanner - an event sink can scan the contents of a message and determine whether it contains a virus. If so, the sink can block delivery or relay of the message.
Mailing List Service - an event sink or a series of event sinks can be used to create a mailing list service, providing not only distribution list recipient expansion from within the service, but support special messages such as subscribe/unsubscribe messages from users, requests for list information, provide moderator support for approval of list member additions, and so on.
Protocol Command Extensions - Event sinks can be used to enhance currently supported SMTP protocol commands, or add new ones. If registered for a custom protocol command, an event sink can extend the service by providing the sole handling for this command.
Custom Mail Store for Local Message Delivery - Using event sinks, you can install a custom message store and associated application logic. For example, you could implement a custom store driver to store messages categorized for local delivery on the machine into some special hierarchy of folders on the file system (as opposed to just the default drop directory), a SQL database, or a Microsoft Web Store. The Microsoft Exchange 2000 Server is an example of a product that installs an extremely advanced store driver that uses SMTP service events to relay and deliver messages into and out of Exchange Web stores.
Custom Routing Logic - You organization may require enhanced routing information to maximize the throughput and reliability of SMTP message relay and delivery. You could use event sinks to enhance the default routing behavior of the SMTP service, using perhaps a custom routing logic engine combined with some form of inter-service communication, where services across the network exchange availability and reliability information.
Custom Queue Applications - An SMTP service can be viewed as a message queue engine, able to receive "messages" and asynchronously perform some action based upon those messages, such as update a database, notify another service that a message was received, and so on. For example, the Windows 2000 Active Directory uses the SMTP service to perform directory replication between services asynchronously. Rather than relying solely upon a Remote Procedure Call (RPC) mechanism, which is inherently synchronous (i.e. both client and server must simultaneously be available and ready to perform the transfer of data), the SMTP service is used to en-queue replication messages for asynchronous communication between Active Directory services in an Active Directory tree or forest.