[PREVIOUS CHAPTER] [NEXT CHAPTER]
5 Executing FML based on POP3


We implement libexec/popfml.pl for the case that


	* You read mails via POP3 only
	* Your mail server's administration policy prohibits programs
	  from run kicked by MTA.


The fundamental logic is simple. FML (libexec/popfml.pl) retrieves a
mail via POP and injects it to fml.pl. This technique is functional,
so applicable to all cases/os's where you can only read mails (of
course you need "perl" works well :-). This technique works well both
on UNIX and Windows NT (beta test phase).


A problem is you should store the POP3 password somewhere on your
machine. In default popfml.pl read it from ~/.netrc.


5.1	how to emulate elena ML based on POP3


% makefml newml popfml


	elena
	elena-ctl


% /usr/local/fml/libexec/popfml.pl /var/spool/ml/popfml /usr/local/fml \
	-user elena -pwfile /var/spool/ml/etc/netrc \
	-include_file /var/spool/ml/elena/include

% /usr/local/fml/libexec/popfml.pl /var/spool/ml/popfml /usr/local/fml \
	-user elena-ctl -pwfile /var/spool/ml/etc/netrc \
	-include_file /var/spool/ml/elena/include-ctl

login    elena

login    elena-ctl


*/5 * * * * /var/spool/ml/etc/popfml/master.sh 5.4 Popfml.pl Reference

SYNOPSIS:

    popfml.pl [-hd] [-user username] [-host host] [-f config-file]

    -user username			
    -host host(pop server running)
    -f    config-file
    -h    this message
    -d    debug mode


Example:
Retrieve a user "fukachan" 's mails from POP server "hikari" and
injects them to programs defined in ~/.popfmlrc.

	popfml.pl -user fukachan -host hikari


Configuration files is ~/.popfmlrc. popfml.pl runs $POP_EXEC variable
in it as a filtering program.


Example: inject mails retrieved from POP servers into fml.pl.

	$POP_EXEC = "/usr/local/fml/fml.pl /var/spool/ml/Elena";
	1;


How to set up cron differs from OS to OS. An example crontab (4.4BSD)
is

* * * * * popfml.pl -user fukachan -host hikari


FML via POP3 technique may enable FML to run on several plat homes out
of UNIX and administration policy.


	Variables

	$POPFML_PROG
	$POP_EXEC


filtering program which we inject mail to. Example: 

   $POP_EXEC = "/usr/local/fml/fml.pl /var/spool/ml/Elena";

	$POP_SERVER

POP Server

	$POP_USER


The pop user name (account) corresponds to the mailing list address 

	$POP_PASSWORD


POP password with $POP_USER.

	$POP_TIMEOUT


timeout to close POP connection with POP server.

	$POP_QUEUE_DIR


temporary queue directory.

	$DIR/var/pop.queue

	$POP_LOGFILE


session log of POP3.

	$DIR/var/log/_poplog

	$POPFML_MAX_CHILDREN


the maximum number of programs running at the same time. 
If the value is large, OS is painful ;-)

	$POP_PORT


POP3 port number. The default is 110/tcp. Usually you need not to
concern it.

	$POPFML_QUEUE_EXPIRE_LIMIT

expire limit of queue spool.

[PREVIOUS CHAPTER] [NEXT CHAPTER]