[PREVIOUS CHAPTER]
[NEXT CHAPTER]
2 MEAD (Mail Error Analyze Daemon)
[abstract]
set up => 2.5
configuration file => 2.6
command line option => 2.7
Beta test phase now.
2.1 Introduction
Mail delivery causes some errors such as "User unknown", ...
Example:
From: Mail Delivery Subsystem <MAILER-DAEMON@DOMAIN.OR.JP>
Subject: Returned mail: User unknown
To: xxx-admin@shumi.fml.org
Date: Sun, 21 Jun 1998 16:17:22 +0900 (JST)
... while talking to mail.domain.or.jp.:
>>> RCPT To:<xyz@ar.domain.or.jp>
<<< 553 <xyz@ar.domain.or.jp>... User Unknown
550 xyz@ar.domain.or.jp... User unknown
~.q
In default returned error mails are set up to be forwarded to
$MAINTAINER. See the file $DIR/aliases example file. If you can
collect error information automatically, you may remove "user unknown"
user addresses. For example mead.pl collects the information and remove
an address if the address causes errors over some limit.
This may be dangerous especially when you do mis-configuration. So
this is not fml default. But this mechanism is helpful for you in the
last of year.
2.3 files
2.4 Theory
mead.pl caches returned error mails as an input if the error content
has 5XX code which must be critical. If the error limits some
threshold, mead.pl does "notify removing address to $MAINTAINER" or
"call makefml and remove error mail addresses automatically". In
default "notify removing address to $MAINTAINER".
2.5 How to set up mead
"makefml newml" creates a sample
include-mead
and $DIR/aliases has a sample entry for mead (comment out).
":include:/var/spool/ml/elena/include-mead" is a sample to kick off mead
program for mails forwarded to elena-admin.
Example: elena ML. To set up mead
elena-admin: fukachan
# MEAD; If you use mead.pl,
#elena-admin: fukachan, :include:/var/spool/ml/elena/include-mead
# elena-admin: fukachan
# MEAD; If you use mead.pl,
elena-admin: fukachan, :include:/var/spool/ml/elena/include-mead
2.6 Configuration file
"-f configfile" option loads configuration from this file at the first
stage. Other command line options can overwrite it. In default
mead.pl does not use the configuration file but use only command line
options.
e.g.
mead.pl -f /usr/local/fml/mead_config.ph ...
2.7 mead.pl Command Line Option
Usage: mead.pl [options]
Options:
-h help
-d debug mode on
-m mode mode; report or auto ('report' in default).
-f configfile load configuration from this file at the first
Other command line options can overwrite it.
-e number expire of error data cache (unit is 'day')
-i number check interval (unit is 'second')
-C cachefile mead data cache file
-D directory $DIR (mead.pl working directory)
-E directory $EXEC_DIR (e.g. /usr/local/fml)
-S directory $ML_DIR (e.g. /var/spool/ml)
-M path makefml path
-p priority priority, e.g. -p uu=2,uh=0.5
(user unkwown == 2, host unkown == 0.5)
[KEYWORD]
uu: unknown user
uh: unknown host
ua: unknown address
us: service unavaiable
default: default value for phrases not above
-k action 'bye' is default, off or bye.
change the action when mead detects a bad address.
-l limit limit whether we should do action defined by '-k action'
-z sendmail alternative sendmail path
1998/10/1
mead.pl -k command option (default 'bye')
If you 'off' the users who causes "unknown user" error "not reachable",
you can use '-k off' option.
2.8 Discussion
We cannot detect the original address which is forwarded and causes
errors. e.g.
fml -> a@b.org -> a@xyz.com (error)
The error mail says for the delivered address <a@b.org>
550 <a@xyz.com> user unknown
which is not on $ACTIVE_LIST nor $MEMBER_LIST.
2.9 A few tips
1998/10/10
mead.pl (Mail Error Analyze Daemon);
Ignore Japanese Strings (which may cause an error)
2.10 VERPs (Variable Envelope Return Paths)
http://www.jp.qmail.org/qmaildoc/RFC/RFCVERP.html
VERPs: Variable Envelope Return Paths. See
http://www.qmail.org/.
If you enable $USE_VERP variable, fml uses VERPs.
$USE_VERP = 1; (default 0)
After 2.2C#6 (1999/06/19), I change .qmail-listname-default for VERPs,
which calls mead.
On "makefml config", you can do
top menu => SECURITY_AND_FILTER => CHECK_MAILBODY_CKSUM => "y"
[PREVIOUS CHAPTER]
[NEXT CHAPTER]