structured
This commit is contained in:
158
smmapdfw/doc/README
Normal file
158
smmapdfw/doc/README
Normal file
@ -0,0 +1,158 @@
|
||||
$Id$
|
||||
|
||||
|
||||
smmapd - A framework for workers for the sendmail socket map
|
||||
------------------------------------------------------------
|
||||
|
||||
|
||||
With release 8.13 sendmail introduces the socket map type. This is an
|
||||
easy-to-use interface to other processes, performing tasks using data
|
||||
provided by sendmail through the map and returning data to sendmail,
|
||||
influencing the routing process.
|
||||
|
||||
smmapd is completely written in C, after a prototype written in Python
|
||||
was used to prove the concept. (The prototype can be found here:
|
||||
http://www.hottis.de/web/verifier/index.html)
|
||||
|
||||
An interface to plugin workers is provided. These workers perform the
|
||||
"interesting" work.
|
||||
|
||||
The framework itself does actually nothing than communicating with
|
||||
sendmail. It receives requests from sendmail, dispatches the requests
|
||||
to the workers and sends back the data returned from the selected
|
||||
worker to sendmail.
|
||||
|
||||
Thereby, the workers can completely concentrate on their particular
|
||||
task and completely ignore the communication with sendmail, including
|
||||
server-stuff, communication protocol and so on.
|
||||
|
||||
Currently two plugins are included in the tarball: an address verifier
|
||||
(comparable to exim's or postfix's callback functionality) and a Cyrus
|
||||
IMAP mailbox verifier. For both plugins m4 files to be used in the
|
||||
sendmail configuration are included too.
|
||||
|
||||
|
||||
|
||||
Building smmapd
|
||||
---------------
|
||||
|
||||
Currently only a Makefile is available, no autoconf and so on.
|
||||
On Debian and FreeBSD it should build out-of-the-box, on Solaris it
|
||||
builds also. Have a look into the Makefile and adapt it to your
|
||||
environment.
|
||||
|
||||
The installation is currently not supported by the Makefile. Copy the
|
||||
smmapd binary, the *.so files (plugins) and the smmapd.ini
|
||||
configuration file into the desired directories.
|
||||
|
||||
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
# every configuration not related to a particular
|
||||
# plugin is in the global section
|
||||
[global]
|
||||
|
||||
# shall we run in background
|
||||
do_fork = 1
|
||||
|
||||
# where to place the pidfile
|
||||
pid_file = smmapd.pid
|
||||
|
||||
# on which address shall we listen (currently
|
||||
# IN_ANYADDR can not be configured)
|
||||
address = 127.0.0.1
|
||||
|
||||
# on which port shall we listen
|
||||
port = 8887
|
||||
|
||||
# from shall we load plugins (currently only one
|
||||
# location)
|
||||
plugin_dir = /home/who/Sources/private/smmapd
|
||||
|
||||
# which plugins should be loaded
|
||||
plugins = test_worker1 test_worker2 verifier cyruscheck
|
||||
|
||||
# the section identifier of a plugin must match to the map
|
||||
# name in the sendmail.cf
|
||||
[verifier]
|
||||
|
||||
# the shared object file containing the plugin
|
||||
obj = verify_worker.so
|
||||
|
||||
# verifier specific configuration begins here
|
||||
|
||||
# how long should we wait for an result before
|
||||
# answering to sendmail (time in seconds)
|
||||
timeout_result = 5
|
||||
|
||||
# timeout for the smtp dialog when verifying an
|
||||
# address
|
||||
timeout_dialog = 20
|
||||
|
||||
# should results be cached
|
||||
cache_enabled = 1
|
||||
|
||||
# how long should an result be kept in the cache
|
||||
# (time in seconds)
|
||||
cache_expiry = 86400
|
||||
|
||||
# sender address for the smtp dialog (angle brackets
|
||||
# are required
|
||||
sender_address = <>
|
||||
|
||||
# argument for the ehlo in the smtp dialog
|
||||
ehlo_arg = local
|
||||
|
||||
# what is the smtp port?
|
||||
smtp_port = 25
|
||||
|
||||
# for each best MX of a domain one checker thread
|
||||
# will be started when verifying an address, how
|
||||
# many should be started at maximum
|
||||
max_checker_threads = 100
|
||||
|
||||
[cyruscheck]
|
||||
obj = cyrus_worker.so
|
||||
|
||||
# how long should we wait for an answer of the depot
|
||||
timeout = 10
|
||||
|
||||
# sender address for the lmtp dialog (angle brackets
|
||||
# are required)
|
||||
sender_address = <testsender>
|
||||
|
||||
# argument for the lhlo command
|
||||
lhlo_arg = local
|
||||
|
||||
# what is your lmtp port?
|
||||
lmtp_port = 24
|
||||
|
||||
|
||||
|
||||
Running smmapd
|
||||
--------------
|
||||
|
||||
The following commandline options are supported:
|
||||
|
||||
-F run in foreground, overwrites do_fork from configuration
|
||||
file
|
||||
-p location of the pidfile, overwrites pidfile option from
|
||||
the configuration file
|
||||
-f location of the configuration file
|
||||
-v print version and release information
|
||||
-h print help screen
|
||||
|
||||
|
||||
|
||||
Programming interface
|
||||
---------------------
|
||||
|
||||
will be documented later
|
||||
|
||||
|
||||
|
||||
|
||||
Wolfgang Hottgenroth <woho@hottis.de>
|
||||
|
Reference in New Issue
Block a user