[PREVIOUS CHAPTER]
[NEXT CHAPTER]
4 Around design policy
4.1 Do we permit any From: addresses?
In default FML does not permit mail from root, postmaster even if
$PERMIT_POST_FROM == "anyone" or $PERMIT_COMMAND_FROM == "anyone". We
think we cannot permit a post from non personal addresses such as
root, postmaster since a ML is for private communication. It is useful
to detect e.g. error mail loops. The addresses to reject is the
following pattern.
$REJECT_ADDR = 'root|postmaster|MAILER-DAEMON|msgs|nobody';
$REJECT_ADDR .= '|majordomo|listserv|listproc';
When we reject the mail from $REJECT_ADDR\@*, FML forwards it to
$MAINTAINER for consults. Other than $REJECT_ADDR we think addresses
to reject is 'uudecode', 'sysdiag', .... I think $REJECT_ADDR should
be more if possible.
$REJECT_ADDR_LIST is also a list to reject.
4.2 Loop checks against mail loops
$CHECK_MESSAGE_ID is 1 in default. FML caches Message-Id: field of an
in-coming mail against mail loops. Duplicated Message-Id:'s are
invalid since Message-Id is unique in all space-time.
4.3 newsyslog(8)
FML provides a library of a subset of newsyslog(8). It rotates logs
like
...
rename log.0 log.1
rename log log.0
...
@NEWSYSLOG_FILES is a list of newsyslog(8) target which consists of
digest delivery configuration, member and active lists.
msend.pl calls newsyslog function on Sunday morning.
@NEWSYSLOG_FILES =
("$MSEND_RC.bak", "$MEMBER_LIST.bak", "$ACTIVE_LIST.bak");
$NEWSYSLOG_MAX is the maximum of rotation of log files.
e.g.
log.4 log.3 ... log.0 log
4.4 Date: is the time FML delivers.
Date: is the time when fml.pl delivers an article.
Posted: is the time when the original sender posted.
The concept of ML must be two ways of thinking.
1 just relay.
2 ML server receives mail and sends it again.
not just relay.
We think FML should be type 2. You can sort articles by Date: since it
is the fml.pl delivery order. This conversion is for your eyes.
4.5 cut out Received: fields
4.6 cut out Return-Receipt-To:
To avoid replies from all ML members.
[PREVIOUS CHAPTER]
[NEXT CHAPTER]