Mail has a modular architecture. While some of the modules comprise the user interface and postoffice, most modules make up the interface between the Mail client and the Mail postoffice. Figure 8.3 shows the key components that make up this interface.
Figure 8.3 Components of the Interface Between Mail Clients and Server
When you have a message to send, the spooler (MAILSP32.EXE) notifies the transport (MSSFS32.DLL) to move the message from your Outbox to the postoffice. When a message arrives for you at the postoffice, the spooler notifies the transport to deliver the message to your Inbox.
The primary job of the spooler is to parcel out system idle time to the transport. This enables the transport to transfer messages in a timely manner but without interfering with the work you really want to do in the foreground. The spooler provides a safety net for the transport by retrying any operations that fail.
The spooler also resolves address book entries, adds message recipients to the personal address book, generates nondelivery reports, checks for new mail, and deletes mail from the server.
The Mail Session Manager (MAILM32.DLL) validates users' identities and manages connections with the Message Store, directory, and transport. It is the component that enables you to work even when the Mail server is unavailable (for example, when you work offline). Mail continues to work with the resources that are available at your computer and automatically connects to the server's resources when the server is available again. Maintaining the security of messages across transitions from offline to online and back is another feature of the Mail Session Manager.
The Name Service (MAILM32.DLL) manages functions related to browsing and filtering lists of names. At the user interface, the Name Service is apparent whenever you browse file folders, specify search criteria, or ask for a recipient's name to be checked.
With the exception of the personal address book, the Name Service treats the directories it uses as read-only lists. Addresses, as used in Mail, consist of the following parts:
When you receive new mail, the Notification Engine (STORE32.DLL) lets you know that the mail has arrived.
The Notification Engine also works with the Session Manager when you browse or filter messages. Folder management and message searches use the services of the Notification Engine.
For example, you can have multiple windows viewing the same folder. If you delete a message from the folder in one of the windows, it automatically disappears from the others because each window waits for notification of events like messages being deleted.
When a new message arrives and is written to the Message Store by the spooler, the Inbox viewer is updated by the Notification Engine. When you place a message in your Outbox, the Notification Engine alerts the spooler that there is a message to deliver to the postoffice.