[______TOC_______]
[NEXT CHAPTER]
1 Mailing list server overview
( sorry, under construction ... )
-- The design policy for a mailing list (ML) server
* automation for daily routine work
* the degree of freedom for users and ML maintainers
* provides delivery function and commands for users/maintainers
* available options are fruitful but the configuration should
be explicit.
...
1.1 ML Server Process Overview
A ML server is a filtering process. MTA (Mail Transfer Agent) on a
host receives mail and injects it to a program (fml.pl). The
program checks the member or not, surgeries the header and passes the
mail to MTA. The ML server does not deliver mails by itself.
[Figure]
<a host> <ML Server Host>
mail from a member
|
V
MTA (e.g. sendmail) ------------------> MTA (e.g. sendmail)
| kick off the ML server
V
ML server (driver)
|
V
MTA (e.g. sendmail) distribution process
| | | | | |
V V V V V V
members of the Mailing List
See the figure above on the delivery process. When the ML server
receives a command mail (e.g. unsubscribe this list, get past
articles), it executes given commands and replies the result to the
sender.
A ML server runs only when mail comes in. It is irregular and event
driven. If a user receives articles not real time but once three
hours, another program (msend.pl) needs to run periodically. This is
called "digest delivery". FML uses cron to execute msend.pl
periodically. See cron(8). In default FML digest delivery depends on
OS's cron for functionality.
1.2 Historical View
FML package provides a lot of functionality of mailing list functions.
I hope it will be useful for from beginner to for people to hack
mailing lists.
For (personal) historical reason FML can emulate hml 1.6.
1.3 Policy
I think "mailing list is a tool for more private communication". In
default only members of a ML can post articles and uses commands for
the ML.
It is important for ML to make routine work more easier. FML provides
several addresses and command interfaces. You can use interfaces you
like. For example, , FML sets up an address for posting and another
address for commands for each mailing list (default).
To provides the degree of freedom of customization, FML configuration
file has a lot of variables (like a sendmail.cf. FML prepares
listserv(majordomo) style command server interface. If you can not
set up "a MTA receives mail and runs FML", you can use POP3 based
mailing list.
The core of mailing servers is so simple but we consider a lot of
exceptions. It must be a know-how. FML support several plat-homes on
almost all UNIX and Micro$oft Windows NT 4.0 (beta test) and provides
non UNIX culture function such as "mget" with "ish", "lha".
For security FML runs with simplest functions in default. FML provides
a lot of functions but disables them in default. You need explicit
change on config.ph to enable some functions by using "makefml"
interface or by hand.
FML provides a lot of variables. You can only configure them in
config.ph (configuration file). FML provides an interactive interface
"makefml". You can configure typical settings by "makefml".
I believe it is easy to write WWW Interface which runs "makefml" under
it (but THERE EXIST NO TIME;-).
1.4 Function overviews
FML provides addresses for post and commands.
variables in config.ph
_____________________________________________________
address for post $MAIL_LIST
address for command $CONTROL_ADDRESS
You can set $MAIL_LIST == $CONTROL_ADDRESS. But in its case, FML
requires the keyword to identify mail is for post or for commands.
The representative functions of FML are
* addresses for post and commands
-- Chapter ../how_to_subscribe 7.1
each access control for each address
* 4 ways of automatic registration
-- Chapter ../how_to_subscribe 5.0
* unsubscribe confirmation
confirmation for bye/unsubscribe command
* remote maintenance
-- Chapter ../remote_control 4.0
PGP authentication, password authentication ...
-- Chapter ../encryption 4.0
* large degrees of freedom for header customization
-- Chapter ../header_rewrite 5.0
* Security: internal traffic monitor
-- Chapter ../resource_control 2.0
If a lot of mails are injected to ML, FML rejects more mails
when the traffic overcomes some threshold.
* Security: filtering
-- Chapter ../filter 4.1
Filtering for each field of a mail header
* a lot of commands
-- Chapter 5.0
* mget, get, ...
* digest (matome okuri)
-- Chapter ../digest 2.0
* SMTP (relay is available but must be of no use today?)
-- Chapter ../smtp 3.1
* Others, e.g. MIME (Japanese)
-- Chapter ../Japanese 2.0
* Convert articles to HTML 4.0 format files with thread.
-- Chapter ../html_convert 1.1 ../html_convert 1.0
* archive, expire of ML articles
-- Chapter ../daily 3.0 ../daily 5.0
* several interfaces such as listserv or majordomo style
-- Chapter ../utility_programs 3.0
You can add and remove functions in config.ph. Firstly please use
"makefml config" to change simple configurations.
1.5 Installation
The simplest way to install Fml system is to do in the top directory
of the fml source
# Hence a lot of variables are pre-defined.
perl makefml
when you make a new ML
perl makefml newml ML-Name
e.g. to make elena@your-domain mailing list
perl makefml newml elena
Please see the file INSTALL for the detail.
[______TOC_______]
[NEXT CHAPTER]