[______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]