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