Socket maps are a very effective way of extending the functionality of MTAs, implemented by Sendmail and MeTA1. They may be used for a vide variety of purposes. For example, one may use them to configure one's Sendmail to keep all data in an SQL database or in any other database, not directly supported by it.
So far socket maps have been given undeservedly little attention. Perhaps, this is due to lack of suitable free software servers that could be queried using them.
Smap aims to fill this gap. Its main
component, smapd
, is a modular server
which handles socket map requests. Instead of handling each request itself,
smapd
relies on loadable modules
to provide the requested functionality. In other words,
the server is responsible for handling socket map protocol,
and for dispatching queries to appropriate modules. Modules,
in their turn, are responsible for looking up the requested key and
returning the result.
Second important part of the package is a set
of loadable modules for smapd
.
These modules cover several important database management systems and
make it possible to easily configure servers for retrieving data from them.
Furthermore, the package provides a framework for writing new
modules for smapd
. New modules may be written either in C or
in Guile.
And finally, Smap includes a client
program, smapc
, which can be used to query arbitrary
socket servers from the command line. Besides other possible uses,
The main audience of Smap are administrators of Sendmail and MeTA1 mail transport agents, as well as those who use Mailfromd, a flexible general-purpose mail filter.