		顼᡼Ф갷

------------------------------------------------------------
1	
1.1	顼᡼
1.2	顼᡼ϡ
1.3	顼ˤʤ륢ɥ쥹μư
1.4	ͣ¦Ūˡ³뤫٤ǧ
1.5	롼פɤ
1.6	Errors-To:

2	MEAD (Mail Error Analyze Daemon)
2.1	Introduction
2.2	ư
2.3	եˤĤ
2.4	
2.5	åȥå
2.6	ե
2.7	mead.pl ޥɥ饤󥪥ץ
2.8	
2.9	A few tips
2.10	VERPs (Variable Envelope Return Paths)

3	qmail  VERPs Ǥμư顼Τ

4	Mail Loops
4.1	Message-ID: Cache
4.2	դX-ML-Info: 

5	Confirmation Daemon (libexec/confirmd.pl)
5.1	ȿʤϺƱա٥ǡ?:-)
5.2	λ
5.3	֤ѿ
5.4	ե
------------------------------------------------------------


1	

顼᡼λˤĤƤϡ֥ȥ֥к( 
section)ߤƤ

1.1	顼᡼

顼᡼̾ $MAINTAINER ֤äƤޤ
elena MLʤ elena-admin@ʤΥɥᥤ Ǥ

MTA֤äƤ᡼ϥ顼ʬϤȥǥХåʾǤ
ۤȤɤŵŪʥե졼ǤʤΤǱѸȷ鷺
顼򤷤餻륭ɤõƤߤƤ

ŵŪ => troubleshoot 6

᡼뤬롼פΤ⥨顼Ǥ=> 4

1.2	顼᡼ϡ

elena ML ξ elena-admin Ǥ

"makefml newml"λ˺븫ܤ

	elena-admin: makefml餻桼

ˤʤäƤޤ:

	elena-admin: fml

fml@ʤΥɥᥤ Υ᡼ɤͤˤޤˤäƤñ˥᡼
륹ס /var/mail/fml ˤޤäƤ⤷ޤ

Ѥˤ

1. ñ /etc/aliases 򤤤

	elena-admin: 桼@ɤäΥɥᥤ, 桼2@ɤäΥɥᥤ2

2.  root ˤʤꤿʤ

	elena-admin: :include:/var/spool/ml/elena/include-admin

/var/spool/ml/elena/include-admin ϰ԰쥢ɥ쥹

	桼@ɤäΥɥᥤ
	桼2@ɤäΥɥᥤ2

[]
	/var/spool/ml/elena/include-admin  chmod 644 Ƥ

1.3	顼ˤʤ륢ɥ쥹μư

/etc/aliases Խ mead (Mail Error Analyze Daemon) ͭˤ
ܺ٤ 2

elena ML :

	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

Τ褦촹ޤ/var/spool/ml/elena/include-mead  mead.pl 
ư褦˺ǽ餫ꤵƤޤ

1.4	ͣ¦Ūˡ³뤫٤ǧ
See also: 5 

ȴʤ㤤ʤϢ˺Ƥʤɤ褯äǤconfirmd 
ȤǡŪ(: 2ΰ)˥Сˡ֤줫̤ͣ
³뤫פҤֻ͡ʤлäΰջ֤ʤΤȤơ
СץǤ

1.5	롼פɤ
See also: 4 

fml Ϥ᡼åƤޤιܤϰʲΤ褦ʤΤǤ
ˤ᡼뤬

1. Ʊ Message-ID: ⤿ʤ

	ƱMessage-ID:Υ᡼ϤꤨʤƱIDΤΤݤ롣

2. 餫˼ʬΣ̤ͣ X-ML-Info: ä᡼Ϥ

   X-ML-Info: եɤˤϣ̤ͣΥɥ쥹(MLΥɥ쥹ޥɤΥ
   ɥ쥹ԤΥɥ쥹ΤŤ줫)ФƤޤ㤨¿ʤΣͣ(
    ML-A -> ML-B -> ML-C -> ... ML-B)ǤäƤX-ML-Info: ˼ʬ
   Σ̥ͣɥ쥹(X-ML-Info: ML-B)ϤǤʤϤȤǤ

ޤǤϥǥեȤǤץ

3. ᡼ʸ MD5 checksum 

ȤåǤޤĤޤƱƤΥ᡼뤬褿餽ϥ롼פ
ޤ

äȤ test פȰԤΥ᡼뤬ʤʤޤǤ:-)

1.6	Errors-To:

Errors-To: ϻȤʤ10ǯ餤˷줿ˤ⤫餺Ǥ
ȤƤޤŤΥӥĤäƤ櫓ǤϤʤ
ΥӥʤɤǴְäƻȤƤޤ

2	MEAD (Mail Error Analyze Daemon)

[]
ξϤϡ֥顼᡼Ϥơ᡼뤬ϤʤСΥɥ쥹
ưŪˣ̤ͣˡˤĤƤǤ
̺ͣ˸ܤϺƤΤ/etc/aliases˰­ưޤ
ޥϥޥɥ饤󥪥ץǹԤʤޤperlǽ񤤤HOOKʤ
եȤäɤ߹ޤ뤳ȤǤޤ
 		=> 2.5
ե	=> 2.6
ץ	=> 2.7

ޤ¥ƥȤʤΤǻְ㤦⤷ޤΤǤ

2.1	Introduction

顼᡼ $MAINTAINER ˵äƤޤ

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
    
    äǯʤɤؤˤϢʤˤʤʤ桼¿
    ΤǡΤ褦ʥ᡼̵ˤȤޤƴԤ
    Фʤޤ󡣤Τ̴ͣԤϼưŪ˺Ȥ⤦Τ
    
    
    äƤ᡼ϥǥեȤǤML桼إեɤ
    褦ꤵƤޤ(aliasesե򻲾) user unknown ʤ
    ξ򽸤ơأβ(ǥեȤ5)顼äƤ餽Υ桼
    ٤褦ˤмưŪ¸ߤʤ桼̤ͣ뤳
    ǤޤΤΥץब mead.pl (libexec/mead.pl) Ǥ
    
    ǤμʤɤȺΤϤ줰⿵Ťˡ
    
2.2	ư

 ǥե

shell script ĤޤưϤƤޤ

 顼ȽǤΤϤɤ

ºݤΤȤή̤˰¸Ƥޤ 14 ֤ǡɥ쥹Ȥ

	ͳ			
	
	user unknown ʤ   + 1    
	줤        + 0.25 

ǹפȤäơ줬 5 򤳤оݤˤޤ
 ᡼륵Фְäִ֤ˣ̤ͣǰ쵤˵ʤ
 user unknown ȯȺ줿ꤷޤ  ;D
 Ǥ⡢äݤ̤ͣǤʤ¤ꤽְ㤤
 õϾʤʤ褦ʤѤ᡼ΤĤ

XXX ɤ르ꥺǤʤ⤹뤷
XXX ȤäΤ褤르ꥺϤɤΤ

2.3	եˤĤ

current  mead.pl ˤϤʳΥե뤬ޤ :-)
errormaillog ϥåȤơȤäƤޤդϰǤ
դäơ֤Τɤ줹뤾פȷ᤿ɥ쥹

	/var/spool/ml/mead/dead_addrs	( mead ѤκȾ )
Ȥ
	/var/spool/ml/elena/dead_addrs	( elena MLΥ顼Ϥ mead )

Ȥե˵ϿƤޤ԰쥢ɥ쥹Ǥ

ȡȽǤǤʤäɡ֤󥨥顼ȵ륢ɥ쥹
 error_addr.hints Ǥޤsmtpfeed -F ץĤä顼
׷̤ʤɤΥե˵ϿϤǤ

2.4	

äƤ顼᡼뤬 mead.pl ϤȤϤ롣5XX Τ褦ʹ
饨顼ˤʤ륢ɥ쥹å夷ޤ5(ǥե)
󥨥顼褿
	ؤΥɥ쥹٤Ȥ򤷤餻(ǥե)

	makefmlƤӽФƼưŪ˺
Ȥ򤷤ޤ

2.2Aʹ(2.2.1, 2.2A)ǤϡMTA¸Υե졼βϤDSN(Delivery
Status Notification)⸫Ƥޤ

2.5	åȥå

ѥ᡼򤤤ʤʤ/etc/aliasesѹǤ

̺ͣ(makefml newml ¹Ԥ)

	include-mead

Ƥޤޤ븫ܤ aliases եˤ mead 
꤬ȥȤ줿֤äƤޤmeadꤹ뤿ˤ
/etc/aliasesˤγԤΥȤϤΤĤ­ޤ

elena ML :

	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

Τ褦촹ޤ/var/spool/ml/elena/include-mead  mead.pl 
ư褦˺ǽ餫ꤵƤޤ

2.6	ե

ޥɥ饤 -f config-file ץե(perl script)
Ǥޤޥɥ饤󥪥ץϤΥեθɾ
Τǡޥɥ饤󥪥ץǤ
ǥեȤǤեϻȤäƤޤ󡣤٤ƥޥɥ饤Ǥ

e.g.
	mead.pl -f /usr/local/fml/mead_config.ph ...

2.7	mead.pl ޥɥ饤󥪥ץ

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

 -k ץ

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.

-k off Ȥ(ǥեȤǤϥ桼ưŪȴƤޤޤ)
 OFF ξ֤ˤޤ

2.8	

forward  forward Ϥ detect Ǥʤͤ

	fml -> a@b.org	-> a@xyz.com (error)

顼᡼ a@b.org äϤʤΤ xyz.com ǥ顼ˤʤ

	 550 <a@xyz.com> user unknown

 fml ¦ꥹȤˤϤʤΤǺǤʤ櫓Ǥ

2.9	A few tips

1998/10/10
   mead.pl (Mail Error Analyze Daemon);
	Ignore Japanese Strings (which may cause an error)

	̵ܸ(ư)ǽΤʸ
	sort |uniq ƥå夹(first match Ǥ user unknown
	񤭤줿ꤹ뤫⤷ʤΤ)

2.10	VERPs (Variable Envelope Return Paths)

Ȥꤢ qmail ξˤĤƤΤޤ

VERPs ˤĤƤ
	http://www.jp.qmail.org/qmaildoc/RFC/RFCVERP.html

$USE_VERP ꤹ $MAINTAINER ɥ쥹򤫤 qmail Ф


	$USE_VERP = 1; (default 0)

2.2C#6 (1999/06/19) ʹߤversionǤmakefml 븫ܤ
    
    makefml config Ǥ
    
       top menu => SECURITY_AND_FILTER => CHECK_MAILBODY_CKSUM => "y"
    
3	qmail  VERPs Ǥμư顼Τ

fml-support: 07462

 INSTALL_with_QMAIL Ȥե򸫤ʤ饤󥹥ȡ&&qmail򤹤

 elena MLˤȤ

% makefml newml elena 

餻

/var/spool/ml/etc/qmail/alias/.qmail-elena
/var/spool/ml/etc/qmail/alias/.qmail-elena-admin
/var/spool/ml/etc/qmail/alias/.qmail-elena-ctl
/var/spool/ml/etc/qmail/alias/.qmail-elena-default

Ȥե뤬Ǥ롣
/var/spool/ml/etc/qmail/alias/.qmail-elena-default 
Ǥ

|/usr/local/fml/libexec/mead.pl -m report -S /var/spool/ml -D /var/spool/ml/elena -E /usr/local/fml

Τ褦 mead ֤褦ˤʤäƤ롣ưʤ Υե򤤤ä
-m report  -m auto ˤ

 qmailVERPsȤ

config.ph  $USE_VERP = 1 (default0ǡVREPsȤʤ)ꤹ

makefml config elena Υ˥塼 / CGIΥ˥塼(ܸɽ)Ǥ 
ȥåץ˥塼  SMTP -> VERPs -> "y"

[]

꤬Ƥʤ饨顼᡼뤬äƤ .
qmail-elena-default ȤФơưŪ˥顼νפ򤪤ʤ

 顼᡼Υեޥå

in fml-support:07508

#check 950346551

	unix time ǤΡ֤뤫פåƯ
	å륤󥿡ХΤ˻ȤƤ롣

#remove a@a.com

	ºݤˡغ褦Ȼߤɥ쥹

	Τɤ줹Ⱥ줿åƤۤ

950276763 ɥ쥹    fml-support-admin@ffs.fml.org   r=uu

顼᡼Υå塣r=ͳ ǤͳȤ˽Ťߥѥ᡼
Ƥ롣

ιԤǤϺˤϤʤ餺郎ʤȺоݤˤʤʤ

   ֤ˤٰʾΥ顼֤뤳

Ȥ郎ݤƤǤ̤ͣΥȥեåޤʤȺ
ޤʤȤϤޤäȤ르ꥺ罸

ŪMTAְäƤȤ⤢Τǡ̵Ѥ˺Ϥ
ȤޤȤȤǡʤȤˤʤäƤޤ

 ƥ: VERPs ѻ
in fml-support: 07509

顼᡼ε¤ϥ᡼ʸϤɤǤ褯ƥ᡼

㤨 
	elena@dom.org ML
	ְäɥ쥹  user@do.ma.in Ȥ

	elena-admin-user=do.ma.in@dom.org

ˤƤߤȥ顼᡼륨ߥ졼󤬤ǤϤ

4	Mail Loops

4.1	Message-ID: Cache
See also: internals 4.2 

Message-ID: ϻΤǰդǤʤΤƱMessage-ID:Υ᡼뤬ͤ
ޤ뤳Ȥͭޤ󡣤ꤦ

1.	ФΥե(MUA,MSA,MTA?)Τɤ줫RFCȿ
2.	ɤäǥ顼ƣ̤ˤʤä
	ɤä˾ä̵ʤϡֵ路ϺפȤ
	ǥMTA⤢ΤǡϤäƤ⤷礦ʤ
3.	ΥޥΥ顼ǡ̤ˤʤä
	: fmlνǥޥ󤬥֡Ȥ

$DIR/var/run/ β˥åե뤬ƤޤǥեȤ
ϳƥե $MESSAGE_ID_CACHE_BUFSIZE (default 60*100) bytesۤ
rotateʤŤΤõޤ $NEWSYSLOG_MAX + 2 
Υå夬ޤͲ 100 * ($NEWSYSLOG_MAX + 2) ɥ쥹
ۤɤФŤǤʤɤΥåޤ

4.2	դX-ML-Info: 

X-ML-Info: եɤˤϣ̤ͣΥɥ쥹(MLΥɥ쥹ޥɤΥɥ
ԤΥɥ쥹ΤŤ줫)ФƤޤ㤨¿ʤΣͣ(㤨 
ML-A -> ML-B -> ML-C -> ... ML-B)ǤäƤX-ML-Info: ˼ʬΣ̥ͣ
ɥ쥹(X-ML-Info: ML-B)ϤǤʤϤȤǤ

᡼롼פMessage-ID: Cache򤹤ȴƤ⡢Υ롼뤬롼פȸ
ʤȤˤʤޤ֥إåʤפȤɬ
Ǥ

5	Confirmation Daemon (libexec/confirmd.pl)

: FML 2.1B#2 ʹߤεǽǤ

Ū(: 2ΰ)˥Сˡ֤줫̤ͣ³뤫
Ҥֻ͡ʤлäΰջ֤ʤΤȤơΥС
ץǤ

5.1	ȿʤϺƱա٥ǡ?:-)

̤ͣˤäƤŪ˥Сå礬ޤconfirmd 
Ū(ǥեȤ2ΰ)˥Сˡ֤줫̤ͣ
³뤫פҤͤޤ(ǥեȤǤϣְ)˥С
ֻOK⤷ֻʤФΥСޤֻ
ä礽θ2(ǥե)֤ͭǤ2ĤȺƤӡ֤
̤ͣ³뤫פҤͤޤ

confirmd.pl ϤޤȤᤪ msend.pl Ʊͤ cron 鵯ư褦
ꤷޤưֳ֤ crontab ǥȥ뤷ޤå򤫤뤿
ˤ2٤ӡ2֡٤ûֳ֤ǵưʤỌ̇̄
ޤ󡣤ȤäƤ᤮Ƥ̵̤ʤǤmakefml newml Ǻ 
crontab θܤǤϰˤʤäƤޤ

5.2	λ

makefml  crontab θ $DIR/crontab Ǥ confirmd ιԤϥ
ȥȤƤޤΥȤϤ crontab ǥƥ cron 
˥åȤޤǥեȤǤϰī5 confirmd ưȤ
ˤʤäƤޤ
Example:

    # confirmd
    # * 5 * * * _EXEC_DIR_/libexec/confirmd.pl _ML_DIR_/_ML_ _EXEC_DIR_

5.3	֤ѿ

confirmd ³Ȥջɽ(Ūˤ 'ack'ޥɤ֤)


	$CONFIRMD_ACK_EXPIRE_UNIT (ǥեȤ2)

֤δ֤ΰջɽͭȤߤʤޤδ֤᤮ȡ֤줫
̤ͣ³뤫פȤǧޤΥ᡼ֻ

	$CONFIRMD_ACK_WAIT_UNIT (ǥեȤ2)

Ԥޤδֻʤʤ confirmd ϤΥСͣ
ޤ

ʤȤ֤ɽϼΤ褦ʤΤǤ

	Regular Expression	Example
	------------------------------------
	\d+ month(s)		2 months
	\d+ week(s)		2 weeks
	\d+ day(s)		2 days
	\d+			3600

5.4	ե

	$CONFIRMD_ACK_REQ_FILE ($DIR/confirmd.ackreq)

桼ˡ֤줫̤ͣ³뤫פȤǧݤΥ᡼
Υƥץ졼ȤǤΥե뤬ʤ(makefml newml Ǥ
ʤ) fml Υ󥹥ȡ drafts/confirmd.ackreq
(e.g. /usr/local/fml/drafts/confirmd.ackreq) Ȥ롣

	$CONFIRMD_ACK_LOGFILE

ˤֻ('ack'ޥ)ΥĤꡢֻ򤷤ΥǡȤ 
confirmd Ѥ롣


		INDEX

$CONFIRMD_ACK_LOGFILE                      ...   5.4 
$CONFIRMD_ACK_REQ_FILE                     ...   5.4 
