NONE TITLE 7.html
Keywords: NONE TITLE,fml, flexible mailing list manager, not listserv style but fmlserv emulates listserv or majordomo style

[PREVIOUS CHAPTER] [NEXT CHAPTER]

7 Delivery, commands and access controls

    7.1	Access Control and policy

    	$PERMIT_POST_FROM
    	$REJECT_POST_HANDLER
    	$PERMIT_COMMAND_FROM
    	$REJECT_COMMAND_HANDLER

    are access control variables.

       $PERMIT_POST_FROM		permit posting from whom ?
       $REJECT_POST_HANDLER		If a not member posts mail,
    				what should we do?
       $PERMIT_COMMAND_FROM		permit commands from whom ?
       $REJECT_COMMAND_HANDLER	If a not member posts a command mail,
    				what should we do?

    [whom]
    	anyone			from anyone
    	members_only		members only (in $MEMBER_LIST @MEMBER_LIST)
    	moderator		forward mail from anyone to moderators

    [handler]
    	reject			reject (sends the file "deny" to From:)
    	auto_subscribe		calls automatic registration (fml Release 3)
    	ignore			ignore

    	(auto_regist		fml Release 2 automatic registration)

    When non usual event occurs in any case, fml.pl sends a report to
    $MAINTAINER.

    In "anyone", "members_only" and "moderators", $REJECT_ADDR is applied.
    If mail comes from public addresses e.g. "root', "postmaster",
    "mailer-daemon", fml.pl rejects it. If you can pass it, change
    $REJECT_ADDR.

        $REJECT_ADDR  = 'root|postmaster|MAILER-DAEMON|msgs|nobody';
        $REJECT_ADDR .= '|majordomo|listserv|listproc';

    Consider a default config.ph of elena ML.  In it access control is
    defined as follows:

    	$MAIL_LIST                     = "elena\@$DOMAINNAME";
    	$PERMIT_POST_FROM              = "members_only";
    	$REJECT_POST_HANDLER           = "reject";

    	$CONTROL_ADDRESS               = "elena-ctl\@$DOMAINNAME";
    	$PERMIT_COMMAND_FROM           = "members_only";
    	$REJECT_COMMAND_HANDLER        = "reject";

    7.2	Automatic registration and access control

    For example, configure

    	$MAIL_LIST                     = "elena\@$DOMAINNAME";
    	$PERMIT_POST_FROM              = "members_only";
    	$REJECT_POST_HANDLER           = "reject";

    	$CONTROL_ADDRESS               = "elena-ctl\@$DOMAINNAME";
    	$PERMIT_COMMAND_FROM           = "members_only";

    In this case, fml.pl rejects mail posted from a not member.
    Subscribe request from a not member to the command address is passed
    to automatic registration routine.

    	$REJECT_POST_HANDLER           = "auto_subscribe";

    enables to pass mail from a not member to the automatic registration
    routine.

    7.3	$MAIL_LIST

    Consider if you set $MAIL_LIST == $CONTROL_ADDRESS. The combination is
    possible to set up. In this case fml.pl cannot recognize the mail is
    commands or a usual article. However special keywords to show this
    mail is for commands can control fml.pl action mode. The keyword
    syntax is '# command' syntax. For example, "# help".

    This is not used in default and prepared for some backward
    compatibility.

    7.4	Address for commands only

    listname-ctl is set up for a command address in default examples.
    include-ctl file is created for it and aliases has an entry for this
    address. Please set up them. "--ctladdr" in listname-ctl is required,
    so DO NOT REMOVE IT. Who can use commands is controlled by
    $PERMIT_COMMAND_FROM. You can change the variable by hand or makefml config.

    7.5	If $MAIL_LIST == $CONTROL_ADDRESS

    Consider if you set $MAIL_LIST == $CONTROL_ADDRESS. The combination is
    possible to set up. In this case fml.pl cannot recognize commands or
    just an article. However special keywords to show commands can control
    fml.pl action mode. The keyword syntax is '# command' syntax.

    This is not used in default and prepared for some backward
    compatibility.

    7.6	Set up a special server

    You can set up a special purpose server by setting $LOAD_LIBRARY.
    $LOAD_LIBRARY priority is higher than a command server. In fact
    theoretically speaking, a command server is a special case of this
    functionality. The command server is when

    	$LOAD_LIBRARY = 'libfml.pl';

    and if you set

    	$LOAD_LIBRARY = 'libftpmail.pl';

    you can provide ftpmail server.

    7.7	Access control in remote administration

    Address, password, PGP authentication are available.

[PREVIOUS CHAPTER] [NEXT CHAPTER]