[PREVIOUS CHAPTER]
[NEXT CHAPTER]
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"
[PREVIOUS CHAPTER]
[NEXT CHAPTER]