fml8 塼 ȥꥢ ( С 7.99.1-20220521)
Dr . Ken'ichi Fukamachi
FML.ORG
< fukachan@fml.org >
Copyright © 2001-2018 Ken'ichi Fukamachi
All rights reserved. This program is free software; you can redistribute it and
/or modify it under the same terms as Perl itself.
ɥ ϡ ꥹ ȥ ( ɥ饤 ) fml С 8 (fml8) Υޥ˥奢
fml8 ϡ Ǥ˥ץ ȹͤ Ƥ ޤ ߤΥ ơ ϡ
Release Candidate (RC) ¤Ȥ ֤Ť Ǥ ( ε ҤȰۤʤ ) Υ ơ
Ǥ 7.98 ǤϤʤ Ȱռ 뤿 7.99.x (GitHUB Ǥ v7.99.x Ȥ
) Ȥ С ̾ ˰ܹԤ ޤ 7.99.x Ǥϡ RC ᤶ ơ critical ʥХ Ĥ֤
ޤ Τ fml8 8.0.0-rc1 ʤɤȤʤ Ǥ
ߤ fml8 ǽ TODO ꥹ Ȥ http://www.fml.org/software/fml8/fml/doc/
ja/todo/STATUS.txt fml4 fml8 ˤĤ Ƥϡ Chapter 8 Ȥ Ʋ
ʤ ʲ δĶ ޤ ( ܤ STATUS ɥ Ȥ Ʋ
)
perl 5.26.2 on NetBSD 7.0
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Table of Contents
Ϥ
fml8 ץ Ȥθ
fml ؤ
fml4 fml8 γ ȯ ˤĤ
ꥹ
ո
塼 ȥꥢ Ѹ Ĥ
쥷
ꥹ ( ͣ ) Ȥϡ
fml8 γ
fml8 Υ ɤ ɤ
Unix fml8 Υ ȡ
Unix ̤ͣ
Microsft 2000/NT fml8 Υ ȡ
fml4 Σ̤ͣ fml8 Σ̤ͣ Ѵ
fml4 fml8
fml8 Υ åץ 졼 / 졼
CGI
apache
ƥ
̤ͣΥ С Ǥ 뤳
̥ͣ о ޥ ( ̴ͣ ) Ǥ 뤳
ե
[fml8 Ǥ ] ե ˤĤ
ޥ λ
إå ν
ʸ ν
ޥ γ
ե 륿
γ
WWW ǣ̤ͣε
̤ͣ äζ ( ) (Thread Tracking System ?)
μ谷
ΥХå å
Фΰ
ȥ 륷 塼 ƥ
[ ] : fml8 Υǥ ץ
ץ
С 褹 뤿 fml ֡ ȥ
ե config.cf
ץ κ
fml8 Υ ƥ
/ ޤȤ
( )
ե 륿
桼 ˤĤ
ޥ ( ޥ 롢makefml CGI)
CGI ץ
ǥ 쥯 ȥ
ǡ θ
桼 ǧ
HOOK( եå )
С ɥᥤ ˤĤ
顼 ץ (libexec/error)
IO ե
ǡ ١ ⥸ 塼
ǡ ١ ƥ (DBMS) Ȥ
ǥ : ¾ Σ̥ͣ ƥ fml8 Ѵ ϡ
IO ؤΥ ץ (IO::Adapter 饹)
Mail::Message ⥸ 塼
̤ν
Mail::Message::Encode 饹
: ץ
I. fml δ ʻȤ
1. ꥹ ( ͣ ) Ȥϡ
ҥ
ꥹ ( ͣ )
2. fml8 γ
fml8 ǽ
ȡ Ȥγ ά
̤ͣ
̤ͣΥ С
̤ͣΥ С
ͣ ޥ
쥷 ԡ s
II. fml Υ åȥ åס ̤ͣκ
3. fml8 Υ ɤ ɤ
FTP Ф ɤ 롣
github ؤΥ
4. Unix fml8 Υ ȡ
ȡ
configure Ԥ
: ƥǥ 쥯 ȥ
fml Υ ȡ : make install
main.cf Խ
site_default_config.cf Խ ( ץ )
ե 륿 뤫
С ɥᥤ
륵 Ф (Postfix)
륵 Ф (qmail)
쥷 ԡ s
5. Unix ̤ͣ
makefml newml ǣ̤ͣ ( ǥե ɥᥤ )
makefml newml ǣ̤ͣ ( ǥե ɥᥤ " ʤ " )
륵 Ф (Postfix)
륵 Ф (qmail)
ե config.cf Υ ޥ
쥷 ԡ s
6. Microsft 2000/NT fml8 Υ ȡ
7. fml4 Σ̤ͣ fml8 Σ̤ͣ Ѵ
: fml4 fml8 ؤΰܹ (1) fml8 ؤ Ѵ
: fml4 fml8 ؤΰܹ (2) fml4 μ¹ԥե 촹 ΤޤȤ
: fml4 fml8
: ֡ ȥץ ѹ
8. fml4 fml8
fml4 fml8 ΰ㤤:
fml4 fml8 ΰ㤤: 饤
fml4 fml8 ΰ㤤: ޥ 顼
fml4 fml8 ΰ㤤: ޥ 饤 (makefml)
fml4 fml8 ΰ㤤: GUI (CGI)
ե Υ롼
9. fml8 Υ åץ 졼 / 졼
fml8 Υ åץ 졼
fml8 Υ 졼
10. CGI
makefml newml ϡ Ĥͤ CGI Ȥ
ǧ : ɤ 褤 ΤǤ
ǧ : .htaccess Խ
CGI : ɥᥤ CGI β
CGI λȤ : : ̤ͣκ
CGI λȤ : : С Ͽ
CGI
̥桼 CGI
11. apache
apache suexec
12. ƥ
ƥ Ȥ
륵 м Υƥ Ȥ
̤ͣؤ ƥ
fml8 Υƥ
ƥ Ȥ פ ML κƽ
III. fml Υ ޥ
13. ̤ͣΥ С Ǥ 뤳
ɤ
̤ͣ˻ ä
( ˤĤ )
̤ͣΥإ : ̤ͣλȤ Τꤿ
ε
륢 ɥ쥹 ѹ
̤ͣ
ޥ (fml )
쥷 's
14. ̥ͣ о ޥ ( ̴ͣ ) Ǥ 뤳
ۥ Ⱦ Ǥ 뤳 ȡ θ ¤ˤĤ
ޥ Ѱդ
Υ ޥ 饤 ץ
̤ͣκ
̤ͣκ
̥ͣ С Ⱥ
̥ͣ С Υ ɥ쥹
С ꥹ Ȥ
ѹ
ȴ Ⱥ
졼 Ⱥ
fml ޥ makefml ޥ
ɥ쥹 ɽ (fmladdr ޥ )
ꥢ ΰ ɽ (fmlalias ޥ )
(fmlconf ޥ )
⥸ 塼 ɥ (fmldoc ޥ )
HTML (fmlhtmlify ޥ )
쥷 ԡ s
15. ե
Υۥ ȤΤ ٤ƤΣ̤ͣΥǥե ѹ
쥷 's
16. [fml8 Ǥ ] ե ˤĤ
ե δ ܹ
: ̤ͣΥ С ԥꥹ
: ȴ Υꥹ
졼 Υꥹ
ȴ Υѥ
17. ޥ λ
ǥ : ư ե
ǥ : ï Ǥ⥳ ޥ 뤬 Ȥ
ǥ : ޥ ï ʤ 褦 ˤ
ǥ : (1)
ǥ : (2)
ǥ : ï Ǥ ʣͣ
ǥ : ե Ǥ ʣͣ
ǥ : PGP/GPG Żҽ ¤
ǥ : PGP/GPG ǥ ޥ ǧ ڤ
ǥ : ̤ͣγ
ʬ Υ ǣ̤ͣ ʤ (Procmail )
ǥ : ե (1)
ǥ : ե (2)
쥷 ԡ s [ǧ ]
쥷 ԡ s [ Ͽ ]
쥷 ԡ s [ ]
18. إå ν
쥷 ԡ s
19. ʸ ν
쥷 ԡ s
20. ޥ γ
ǥ : help ޥ
쥷 ԡ s
21. ե 륿
쥷 ԡ s
22. γ
ǥ : ͣ ȼ Υ
23. WWW ǣ̤ͣε
쥷 ԡ s
24. ̤ͣ äζ ( ) (Thread Tracking System ?)
̤ͣξ
[ ?] fml8 (minimal_states ) åȥ ƥ
ɥ ƥ ǡ ١
IV.
25. μ谷
Υ
쥷 ԡ s
26. ΥХå å
fml8 Хå åפ
fml8 Хå åפ : Υǥ 쥯 ȥ
쥷 ԡ s
27.
쥷 ԡ s
28. Фΰ
쥷 ԡ s
V. ȥ 륷 塼 ƥ
29. ȥ 륷 塼 ƥ
쥷 ԡ s
ե 륷 ƥब 顼 ξ
Ʊ 뤬
VI. ǥ
30. [ ] : fml8 Υǥ ץ
fml-devel ץ Ȥι
ʾܺ )
fml ե 륢 ǥ
ƥ 㥢
˥ ˤĤ ( ɸ )
31. ץ
̿̾ § ʥ͡ ߥ
ǥ / ǥ
[ ] ץ ( ƤΥ ( : ñ ʤ ))
VII. ¤
32. С 褹 뤿 fml ֡ ȥ
:
FML::Process:: 饹 γ ¤
ץ ¹Ի ͻ
: ml_name ml_domain ͤϤɤ Dz
33. ե config.cf
̤ͣ Ȥ config.cf
config.cf Υե ޥå
Postfix ĥ
config.cf ɤ߹ ( ξ )
Ÿ
(alphabetical order)
( 饹ʬ )
쥷 ԡ s
34. ץ κ
ץ ( ޥ 饤 )
ץ ( CGI )
35. fml8 Υ ƥ
fml4 fml8
Mail::Message ֥
fml8 ߤ Υ 塼
fml8 ֤
fml8 ˤ 륭 塼 Ȥ
륭 塼 ǥ 쥯 ȥ
塼 ƥ
: FML::Mailer
˴ؤ TIPS
36. / ޤȤ
ޤȤ ǻȤ 뷲
: ȴ Υ ޥ 뤫
recipes
37.
ν
Σͣ
Ѹ Σͣ
38. ( )
Mail::Message 饹
Mail::Message::Parse 饹
Mail::Message::Compose 饹
: reply_message_nl() λȤ
[ ] : 顼 ֤
39. ե 륿
ե 륿 γ
ե 륿 ˴ؤ
ե 륿:
ե 륿: ޥ
ե 륿: mime component filter Υ롼 빽 ˡ
: mime component filter ʵ ǽ Ȥϡ
40. 桼 ˤĤ
桼 ɲäȺ ϡ ɤ ѿ ƹԤʤ ٤ Ǥ 礦
41. ޥ ( ޥ 롢makefml CGI)
Ƽ拾 ޥ ǻȤ ⥸ 塼
ޥ ե
ޥ γ : ޥ
ޥ γ : makefml ξ
ޥ γ : CGI ξ
: fml4 fml8 Υ ɤν ɤΤ 餤 㤦
42. CGI ץ
å
CGI β ̤κ ȥ å
̤ȥȥ ݥ
: FML::CGI::Admin:: Ǥϥϡ ɥ ǥ 뤷 ʤ Τ
CGI μ : CGI 饹 ηѾ ط
CGI μ : config.cgi μ
43. ǥ 쥯 ȥ
Q: ֥ǥ 쥯 ȥ깽¤ ϲ ޤ
쥷 's
44. ǡ θ
ǡ ˤĤ Ƥγ
FML::Restriction 饹
CGI ˤ ǡ
: FML::Restriction ¤Ϥ Ӥ 뤫
45. 桼 ǧ
: FML::Credential μ
46. HOOK( եå )
⤷ HOOK ˤ
HOOK ̾ §
쥷 ԡ s
47. С ɥᥤ ˤĤ
С ɥᥤ ǥ ƥ
: fml8 ˤ ɥᥤ
ǥ : FML.ORG д֤Ǥΰ
48. 顼 ץ (libexec/error)
顼Ƚ Υ 르 ꥺ
ǡ Υ
顼 ɤ
49. IO ե
IO::Adapter δ ܷ
å
50.
γ
TODO
51. ǡ ١ ⥸ 塼
⤷
Ū ʥǡ ݻ
Tie::JournaledFile 饹
FML::Cache::Ring 饹
52. ǡ ١ ƥ (DBMS) Ȥ
53. ǥ : ¾ Σ̥ͣ ƥ fml8 Ѵ ϡ
: fml4 fml8 ؤΰܹԤˤĤ
VIII. ⥸ 塼
54. IO ؤΥ ץ (IO::Adapter 饹)
IO::Adapter γ
IO::Adapter Υ å
fml8 ʥ åɤη
file ޥå
unixgroup ޥå
NIS ޥå
MySQL ޥå
55. Mail::Message ⥸ 塼
Mail::Message γ
Mail::Message ⥸ 塼 : Ϥ
Mail::Message ⥸ 塼 :
Mail::Message ⥸ 塼 : إå
Mail::Message ⥸ 塼 : ʸ
Mail::Message ⥸ 塼 : ֥ Ȥθ
Mail::Message ⥸ 塼 : 롣
Mail::Message ⥸ 塼 : ʴؿ
56. ̤ν
饹::Language::
57. Mail::Message::Encode 饹
[ ] Mail::Message::Encode λȤ
Mail::Message::Encode λ ( 餹 )
桼 ƥ run_in_chcode()
58. : ץ
ǥ : fmlsch 롣
ǥ : fmlsch.cgi
IX. Ͽ
콸( ؿ )
A. repository ȥ ¤
ĥ ¤ γ
ȥ ǥ 쥯 ȥ깽¤
B. SGML ν
SGML γ ǰ
( book ) Υƥ 졼
HTML
HTML
ġ 뷲
ɤ ѹ
ξ
C. NetBSD 1.5 Ǥ IPv6
IIJ IPv6 ȥ 뷿 ӥ ξ
ȥ
롼 ƥ
ۥ ȤʤɤؤΥ ɥ쥹 γ
D. [ Ť ] Problem Report ġ ޤȤ
Problem Report ġ
Call Tracking Problem Tracking
status ǻȤ
GNATS (GNU Problem Report Management System)
Jitterbug
Call Center, Bug Tracking and Project Management Tools for Linux
Perforce Defect Tracking Integration Project
E. ǡ ¤ μ
curproc ֥
PCB Υ ƥ
List of Tables
4-1. ǥ 쥯 ȥ ¤
8-1. fml4 fml8 ΰ㤤: CUI (makefml ⤷ fml ޥ )
30-1. TODO
30-2. Х
33-1. table description
A-1. / ʲ Υǥ 쥯 ȥ깽¤
A-2. fml/ ʲ Υǥ 쥯 ȥ
B-1. ơ ֥
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ϥ
ֽ ǯ ä 饽 եȥ ϰ줫 ľ ζ Ȼפ κ Ǥ (
ǤޤȤ᤹ Ǥ 礦 )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 ץ Ȥθ
fml8 ϡ (fml4 ߴ ǤϤʤ ֤ Release Candidate ʥ١ פȤ
Ĥ Ǥ ) ºݤˤϲ ǯ ˤ ϤäƱ ³ Ƥ Ǥ
ꥹ ( ͣ ) ɥ饤 ФȤ Ƥδ ܵ ǽ Ƽ ޤ
ޥ 饤 ե (CUI) ˥塼 ̤ ٤Ƽ Ǥ ̤ͣ Ȥ˺٤
ϥե ɬ Ǥ ˱ Ǥ fml4
˻Ȥ Ǥ
GUI ǽ ϼ ߤǤ 塼 ̤ ̤ ޤ ꤳ ޤʤ Ȥ
ޤ
ʤ fml4 fml8 ˤĤ Ƥϡ Chapter 8 Ȥ Ʋ
fml4 κ٤ ǽ fml8 Ȥʤä ⤢ Ƥ Ӥ fml8
ǥ С Ǥ Ǥ
fml8 ǽ ƺǶ TODO ꥹ Ȥ http://www.fml.org/software/fml8/fml
/doc/ja/todo/STATUS.txt Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml ؤ
fml8 ץ Ȥ fml4 1 ľ fml ץ ȡפǤ fml4
fml8 δط sendmail postfix Τ褦 ʴط Ȥ ʥ Ŭ Ǥ
fml8 fml4 ޤǤˤ 10 ǯ ηи դޤ Ū fml4 Ρɵ ǽ ɤ / Ƽ
ߤǤ
(1) ֺ ȡפ (2) ( ⤷ ˸ߴ ι⤤ ) ľ Ͻ
ƤʤΤǤϤʤ Ȼפ ޤ (1)(2) Ǥ ޤǤ⤤ Ȥ
(2) ΰ ֤ 줿 㤬 Postfix Ǥ 礦
fml8 ˤϡ ǥ 줫 ľ Ȥ˲ä fml4 ε ǽ ѿ Ȥ ä ⤢
Ȥ fml4 äƤ Ƶ ˤʤ ΰ ۥ Ȥǡ ǥ ξ С ե
Ȥ ǥ fml4 κǽ餫 Ƥ ¤ Ǥ [1]
ʤ 顢RDBMS Ȥ Ȥ Ĺ NFS λ Ϥɤ
롩 ֥ȥ åȥ ƥ Ϣư ϡ SQL ФȤ ư Ǥ ͡
ʤɤʤɡ
ޤ ¤ ǤϤʤ ñ ˼ ʬ ߤ ǽ fml ʰ bug tracking system
ߤ bug tracking system ⸡ Ǥ Ϣư Ƥ ߤ
cvs Ȥ ư ߤ SPAM ϳ
ǽ Ȥ 4.0 ε ǽ Ȥ Υǥ Ĥ ƤκƸ Ƥ Ǥ Ȥ С Τ褦 ʹ ܤ ͤ
ޤ
• fml8 ذ ٤ ǽ ϲ
• fml8 Ǥ Ȥ ޤ ޥ 䤹 ˼ ʤ
• Ǥ פε ǽ ϲ
ˤĤ Ƥΰո 罸 Ȼפ ޤ Ф Ƥ⤷ 礦 ʤ Τǡ
Ȥ ä Ƥ ޤ 줬 fml8 Ǥ
http://www.fml.org/software/fml8/
ftp://ftp.fml.org/pub/fml8/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 fml8 γ ȯ ˤĤ
fml4 fml8 fml8 Ǻ 줿 ⥸ 塼 ޡ fml4 Υ ɤ ݼ Ĥġ Գ
ȯ äƤ ޤ
Τ 4.0 Ϥ fml ץ Ū stable ˶ᤤ current Ȥ
դ ˤʤäƤ ޤ 4.0 bug fix 4.0.x (4.0.1 4.0.2 ) Ȥ ƤޤȤ
ͽ Ǥ ޤ 4.0-current 4.0.x Τ ƥ ȥ Ǥ ꡢ fml8 γ ȯ
( fml-current ) Ȥ դ Ȥ ޤ
fml-devel
-----------------------------> 8.0 ? ( ץ Ȥ )
1.2 4.0 ------------------------------> 4.0-current
| |
4.0.1 4.0.2 .... ( / 4.0-stable С )
ޤ fml8 ˺ 줿 ⥸ 塼 fml4 Ǥ Ȥ 4.0 Ǥ ι⤤
mead ( 顼 ץ ) 䡢 ץ ƥ fml8 ֤ Ǥ 礦
fml8 ε ǽ 4.0 ǥƥ Ȥ뤤 Ǥ⤢ κ 4.0.4
4.0.5 ʹ ܳʲ Ǥ
4.0 bug fix 4.0 ǹԤʤ ޤ ǽ ϡ fml8 dz ȯ
塼 ̤ 4.0 Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ꥹ
fml ε Τ ꥹ Ȥ Ѱդ Ƥ
Ͽ λ Ĥ Ǥ fml-devel ML ؤμ ư Ͽ fml-devel-ctl@ffs.fml.org
subscribe θ ʬ ³ ե졼 " ʸ" ( : ʸ)
˽ Ʋ Ȥ м Τ褦 ˤʤ
To: fml-devel-ctl@ffs.fml.org
subscribe Kinomoto Sakura
Υ Ͽ ջֳ Υ 뤬 ֤ ޤ Υ Ƥ ̤ͣ
̤ͣ˻ ä ʤ ˾ Ȥ ̤ͣǤϤʤ fml-request@fml.org إ äƲ
Υ Ŭ fml-devel Ƶ Ȼפ ޤ ¾ ˥ե ɤʤɤ 줿 ʤ
Ϥ λݤ ɮ Ƥ Ʋ
github.com/fmlorg/fml8 issue Ū Ǥ 礦 ⤫ ޤ
ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ո
fml8 Υ ǥ ΤĤ ơ ո 洶 Ԥ Ƥ üŪ ˤ 4.0 Τ ϼѤ
ε ǽ Ϥɤ Ǥ Ȥ ε ǽ Ϥ ʤɤȤ ä ո 罸 Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
塼 ȥꥢ Ѹ Ĥ
ɤ ʤɤ Ω ġ ٤ ʴؿ ˤĤ Ƥ Ѹ콸 콸
( ؿ ) ˤ Ȥ Ʋ
%
̥桼 Υץ ץ
#
桼 root Υץ ץ
~
桼 Υۡ 쥯 ȥ
CUI
ޥ 饤 Ȥ ġ 롢 Ȥ makefml fml ࡣ
fml
fml եȥ ä Ƥ ϻȤ Ȥ
fml ( ޥ )
fml8 ˤ fml Ȥ ޥ Τ ȡ makefml ޥ ǽ ν ֤ ۤ
ʤ롣 ֥ Ȼظ
桼 fml
fml Ȥ ̾ Υ桼 fml8 桼
fml4
fml4 Τ
fml8
fml8 Τ ȡ fml8 Τ Ȥ fml 5.0 Ȥ fml-devel ȸ äƤ
GUI
CGI ե Τ ȡ
makefml ( ޥ )
fml4 fml8 ˤ 祳 ޥ Τ ȡ fml äƤ 륵 Ф˥
ƻȤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷
ꥹ ( ͣ ) Ȥϡ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 γ
• ʤ fml4 μ fml8 ʤΤǤ
• fml4 fml8 ϲ Ǥ
• current, stable, release ɤ ɤ Ǥ
• ɥ ?
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Υ ɤ ɤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Unix fml8 Υ ȡ
• 桼 fml ʳ ( Ȥ м ʬ̾ ) fml
• ȡ Ȥκݡ 桼 fml ˤʤ륿 ߥϡ
• ɥ ȴ Υ ȡ
• ȡ perl Υѥ
• jperl fml
• elena ML ( )
• /var/spool/ml/etc/ ʲ aliases ե Ƥ Ǥ
• 륵 Ф Unix Dz fml Windows 2000/NT4
• ̤ͣ ( ƽ )
• ְ㤨 rmml Ƥ ޤä ̤ͣ
• loader Bootstrap() ĤʤɤȤ 顼 Фޤ ɤ 褤
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Unix ̤ͣ
• newml ˣ̴ͣ Υ 륢 ɥ쥹
• Ȥ MTA θ
• ̥桼 / ѤΥ ֥ڡ Ѱդ ΤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Microsft 2000/NT fml8 Υ ȡ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 Σ̤ͣ fml8 Σ̤ͣ Ѵ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 fml8
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Υ åץ 졼 / 졼
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
apache
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣΥ С Ǥ 뤳
• Ͽ 륢 ɥ쥹 ѹ
• ̤ͣ Ǥ 륢 ɥ쥹
• Ĺ ߤʤΤǰ
• ֤ε ߤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̥ͣ о ޥ ( ̴ͣ ) Ǥ 뤳
• а (ǧ ڥꥹ Ȥΰ )
• ԥꥹ Ȥ
• ̤ͣ ƾä Ƥ ޤä ᤷ (CUI,CGI,admin ޥ )
• ƤǤ 륢 ɥ쥹 (CUI,CGI,admin ޥ )
• ɥ쥹
• Ͽ 륢 ɥ쥹 ѹ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե
• elena ̤ͣ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[fml8 Ǥ ] ե ˤĤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ λ
• ӥ ư
• ɤ ո դ ͣ
• ï Ǥ⥳ ޥ 뤬 Ȥ
• ƥॢ ơ ï Ǥ⥳ ޥ 뤬 Ȥ
• ޥ ï ʤ 褦 ˤ
• ɥᥤ Ǥ Ǥ ML
• ե Ǥ ʣͣ
• ͤ ɤƤ ̡
•
• PGP/GPG Żҽ ¤
• PGP/GPG ( 桼 ⡼ ɤ ) ޥ ǧ ڤ
• PGP/GPG admin ޥ ǧ ڤ
• 륢 ɥ쥹 From ǧ ڤ
• 륢 ɥ쥹 From ɥ쥹ǧ ڤ ʤ
• subscribe ϼ Ǥ
• (fml4 closed + confirm )
• unsubscribe ޥ Ǥ confirmation
• unsubscribe ϼ Ǥ
• (fml4 closed + confirm )
• chaddr ޥ Ǥ confirmation
• chaddr ϼ Ǥ
• (fml4 closed + confirm )
• ư Ͽ ȼ ʾҲ Ʊ ˹Ԥʤ
• Υ 륢 ɥ쥹 Τߤ Ͽ ˤ 롣
• fml 3.0 auto_regist ³
• MAINTAINER elena-admin ʳ ˤ
• ȴ ϣ̤ͣΥ С Ǥʤ Ƥ
• Subject: ˱ Ȥ ѹ
• ꥹ Ȥ ѹ
• /etc/group Ǥ ͣ
• ( Ƽ ) ˤϣ̤ͣε ʤ
• μԤ ѹ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
إå ν
• Subject: [elena:00100] Τ褦 ʥ
• Subject: [elena:00100] ο ʬ(00100) η Ѥ
• Subject: Υ ο (00100) 0 ѥǥ
• (strftime(3) )
• Subject: Υ
• Subject: Υ
• Subject [ ] Ȥ
• Reply-To: ɥ쥹 ˶ 롣
• Reply-To: Ԥ ꤹ 롣
• Reply-To: ̡ͣפ ꤹ 롣
• ̥ͣ С ƤǤ
• Reply-To: ԡܣ̡ͣפ ꤹ 롣
• To: Cc:
• fml8 ̤Υ ɥ쥹
• Reply-To: ꤹ 롣
• ʥإå ե X-Face:
• Sender: X-Sender: ˥ ԡ 롣
• Received: X-Received: ذ 롣
• Υ Reply-To: ʤ Τޤޤˤ
• To: Cc: Reply-To: Τޤ ̤ ˤ 롣
• Message-ID: ϸ ͤΤޤ ̤
• ML Message-ID:
• X-ML-Info: Ƥ 롣
• ȥ Reply-To: 롣
• Υإå ̤
• In-Reply-To: References:
• ⤽ ⡢ å ߤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ʸ ν
• ʸ ˡ֢ פȰ ̾ʸ 줿
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ γ
• ޥ ɤ ֻ Reply-To: ǤϤʤ From:
• help ʤɤΥ åץ 졼 ɤ
• help θ ե ޥ 롣
• confirmation ޥ
• news Ȥ ե ֤ ޥ
• mget ޥ Υե ɤΥǥե ѹ
• get ޥ mget mp ˤ
• command status report
• ޥ 뤷
• admin ޥ ǣ̤ͣκƽ
• admin ޥ ǣ̤ͣΥ С ꥹ Ȥ ˺ / Ͽ
• admin add welcome
• admin add Ǥ 륢 ɥ쥹 ϰϤ ¤
• ѤΥ ޥ 줿
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե 륿
• ե 륿 ƥ Ȥ Υե 륿 ꤷ
• Υ 륢 ɥ쥹
• message/partial 륿
• ź ե 뤬 Ĥ Ƥ ݤ HOOK
• ե 륿 Ƥ ˡ 顼 ɤ ֤
• spamassassin SPAM ̵ 뤹 롣
• spamassassin SPAM Ƚ 顢
• إå X-Spam-Status: Yes 롣
• SPAM ơ To: Cc: ML ̾ ܤȤ
• ͣ ȼ Message-ID: ƶ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
γ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WWW ǣ̤ͣε
• HTML 줿 ʤ
• HTML 줿 URL ~fml
• 椫 html ʤä
• HTML ( ) ˤϡ
• HTML WWW Ф fml8 Υ Ф 㤦 ΤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣ äζ ( ) (Thread Tracking System ?)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
μ谷
• fml Υ 顼
• Ť
• ˽
• Ԥ
• Υ ԡ ĸ ĥ ꡢ ĥ 顼 Ԥ
• Ť ե õ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ΥХå å
• ե С
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• ס ̤
• ס ư Ǿä
• ǥ ֤ ꤿ
• ֤ 鵭 get ޥ Ǽ Ф
• ֤ get
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Фΰ
• 륵 Ф ۤ ޤ
• IP ɥ쥹 ѹ ˴ط Τ fml8 Υե
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ȥ 륷 塼 ƥ
• ȤäƤ fml ΥС ꤿ
• Postfix ΥС ꤿ
• Sendmail ΥС ꤿ
• qmail ΥС ꤿ
• 륢 ɥ쥹
• alias
• Ƥ ̤٤
• fml ȡ 뤷 ۥ Ⱦ夫 Ǥ ʤ
• CGI ǣ̤ͣ 륵 Ф Ǥ ʤ
• ˼ ư Ǻ
• 뤬
• οͤ ʤ
• ̤ͣΥ С Ǥʤ ɥ쥹 饨 顼 뤬
• aliases fml ѹ 2 ˤʤä
• flock ư ʤ OS ʤΤǤ
• ֹ椬 ˤ äƤ ޤä
• ְ㤨 ƾä Ƥ ޤä
• ǥ ˾ä Ƥ褤 ե
• Reply-To: Ĥ Ƥ ʤ 褦 Ǥ
• Ԥɤ ʤ 褦 Ǥ
• References: In-Reply-To: Ĥ Ƥ ޤ
• ǥ ɤ ɽ Ǥ ޤ
• ̤ͣμԤΤ ͤ ʸ 뤽 Ǥ
• ɤ Ƥ ISO-2022-JP Ƥ ʤ ͤ ޤ
• Ԥ 줬 Ķ ˤ
• Ⱦ 뤬 Ƥ 餽
• help ʸ Ƥ ޤ
• get Ǥ ʤ
• get ish ⡼ ɤʤɤ ư ʤ
• subscribe 褦 Ȥ ̵ 뤵 褦 Ǥ
• ' ॢ ɥ쥹 ޤ ʤ
• "xxx"@yyy.or.jp Ȥ ɥ쥹 Ȥ ޤ subscribe Ǥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[ ] : fml8 Υǥ ץ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ץ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
С 褹 뤿 fml ֡ ȥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե config.cf
• config.cf ǻȤäƤ褤 ؿ ɤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ץ κ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Υ ƥ
• ʸ Ƥ˱ Ѥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
/ ޤȤ
• ޤȤ Ϥ ļ¹Ԥ Ƥ Τ
• ޤȤ ΰ ̷ Υǥե ѹ
• makefml add λ ˤޤȤ ѥ
• ޤȤ Υ ɤ ɤ ̥ե Ͽ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
( )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե 륿
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
桼 ˤĤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ ( ޥ 롢makefml CGI)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI ץ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ 쥯 ȥ
• ǥ 쥯 ȥ ϡ ɤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǡ θ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
桼 ǧ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOOK( եå )
• HOOK ǿ侩 ϡ
• HOOK ѹ Ƥ褤 ʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
С ɥᥤ ˤĤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
顼 ץ (libexec/error)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IO ե
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǡ ١ ⥸ 塼
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǡ ١ ƥ (DBMS) Ȥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ¾ Σ̥ͣ ƥ fml8 Ѵ ϡ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IO ؤΥ ץ (IO::Adapter 饹)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ⥸ 塼
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ν
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message::Encode 饹
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: ץ
I. fml δ ʻȤ
ѡ ȤϽ鿴 Ը ꥬ ɤ ܤ Ƥ ޤ ϴ ʥǥ Ĥ
ƤǤ
ʤ ꥹ Ȥλ Ȥߤʤɡ ƤˤĤ Ƥ fml Х ֥ ( 饤
) http://www.fml.org/software/fml/ ʤɤȤ Ʋ
Table of Contents
1. ꥹ ( ͣ ) Ȥϡ
2. fml8 γ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 1. ꥹ ( ͣ ) Ȥϡ
ҥ
ҥ ϡ Υͥåȥ Ǥ
Ф ϥ 륽 եȤˤ Ѥ ޤ 륵 Ф Ȥꤷ Ƥ Ƥ Τ褦 ʷ Υƥ
ȥե ޤ
From: rudo@nuinui.net
To: kenken@nuinui.net
Subject: ܤ
ܤ 衣
//
Unix Ǥ ʤ ߤ : Ƕ ڤ ϡ ͥåȤΤ ޤ ޤʵ ʤǤ Ƥ ޤ Υ Ȥ
Ƥ 822 ȸƤФ ֥ե : פ Ǥ ϱѸ ʸ
ե From ( ) ͤ ԤΥ 륢 ɥ쥹 Ȥ ä ˤʤ
ʤ RFC822 줿 Τ ̾ 822 ǰ ޤ [2]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ꥹ ( ͣ )
ꥹ ( ʲ ͣ ) Ȥϡֵ ʸ λ ȤߡפΤ褦 ʤ Ǥ ʲ ¤ פȤ
Τۤ ʬ Ǥ 礦
ΤǹԤʤ Ȥ ï ̤˥ ԡ ˤĤᡢ
Ž ꡢ 뤷 Ǥ
Żҥ 㥳 Ȥ ̤˥ ԡ [3] Ǥ ޤ Τ ( ̤ͣΥ ɥ쥹) ˥ ( θ
) ȡ ͧ β Υ С Υ ԡ ( ) ۤ
줬 ̤ͣλ ȤߤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̥ͣɥ饤 ФΥ
̥ͣɥ饤 ФΥ Τ褦 ʤ Ǥ
[ml]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 2. fml8 γ
ʤ fml4 fml8 ˤĤ Ƥξܺ٤ϡ Chapter 8 Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 ǽ
fml4 κƼ äƤλ ۤ Ȼפ ޤ 塼 ܰʳ RC (Release
Candidate) ε ʬ Ǥ
• ե ʤ Postfix Ǥ
• ǤΥ ޥ (makefml ʤ fml) ˤ fml4 Ǥ : ̤ͣκ /
С / / (chaddr) ȴ / 롢
С ꥹ Ȥ롢 ¾ ¹ԤǤ ޤ
CUI λȤ ˤĤ Ƥ the Section called fml4 fml8 ΰ㤤: ޥ
饤 (makefml) in Chapter 8 Ȥ Ʋ ʤ CUI ˤ
ϡ ޤ Ū ʳ Ǥ ư ޤ
• GUI (CGI) ˤ : ̤ͣκ / С / / (chaddr)
ȴ / 롢 С ꥹ Ȥ롣 ե ǽ
• إå ν ե 륿( 4.0 Envelope Filter Content Filter
)
• ޥ ( ̥桼 ) С / / (chaddr) ޥ 롢 ε
롣
• ޥ ( ȴ ): С / / (chaddr) ȴ
/ 롣
• 顼 ư 顼 ˤʤ륢 ɥ쥹 μ ư
• SPAM (2008/08/17 ʹ )
• IPv6 ˤ
• ץ ƥ (CUI CGI ): ١ ΤǤ ǽ С Ϻ
졢 2004/03 ľ
• HTML ( ǥե HTML ): ǥե Ǻ Ƥ ޤ
fmlhtmlify makefml HTML ޥ ⤢
• MTA ư ץ : distribute command error
• ٱ礹 ƥ : fmladdr fmlailas fmlconf fmldoc makefml fml
• fml4 ߥ : fml4 fml.pl fml8 fml.pl 촹
fml8 ˰ܹԤǤ ˤ ޤ
: ɽŪ ʵ ǽ ǡ ǽ Ф ǤϤ
• 2004 ưʹ : 塼 ƥ fml8 MTA Ǥ
• ݲ IO С ꥹ Ȥʤɤμ ˤ ơ ե 롢/etc/group NIS MySQL
PostgreSQL LDAP ʤɤ Ʊ ˤ Ĥ ޤ ( ե ɬ )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ȡ Ȥγ ά
Important: GNU autoconf ǥե ȥ (configure
make) ʤ ȤʤäƤ ޤ fml4 ˤ ޤ Ƥ ޤ Ǥ OS ° Υѥå
ƥ ο Ϲ⤯ ʤ
fml8 Υ ȡ (fml4 Ȥ ) ϡ root Ǥκ ס
configure λ ѡס /usr/local/etc/fml/ ʲ ˤ Ǥ [4]
ơ Ĥ 褦 Unix elena ͣ (elena@fml.org) 륱 Ȥ
礦 ȡ ޤ Τ褦 ˤʤ
1. ɤ ơ Ÿ Ʋ
2. 桼 root ǥ ȡ ޤ 桼 root ˤʤä 顢 ޤ ϥ桼 fml ȥ 롼
fml ޤ θ塢 configure θ make install Ԥ Ʋ
% su root
# groupadd fml
# useradd -m -g fml fml
# ./configure
# make install
ǥե Ǥ /usr/local ǥ 쥯 ȥ 4.4 BSD Υ ֥ǥ 쥯 ȥ꤬
ǥ 쥯 ȥ configure Υ ץ ѹ Ǥ
ǥե Ǥϡ ᥤ MTA Ф ץ /usr/local/libexec/fml/ ʲ
ء makefml fmldoc ʤ fml ǻϤޤ ƥ ץ /usr/local/bin
ʲ ˡ ȡ 뤷 ޤ ¤ΤȤ /usr/local/libexec/fml β μ Τ
ӽФ ñ ʤ wrapper Ǥ
3. 桼 fml elena ̤ͣ 롣
% su fml
% makefml newml elena
⤷ fml ޥ ( ) ä
% su fml
% fml elena newml
Ǥ Ǥ ( : fml ޥ fml8 ˤ )
4. MTA fml8 ʤɤ 뤿 MTA Ƥ
5. ͣ ȤƤ
6. ͣ Υ ޥ Ƥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fml4 Ȱۤʤꡢ 桼 root ǥ ȡ Ȥ뤳 Ȥ Ʋ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣ
makefml ޥ äƣ̤ͣ ޤ ǥե ɥᥤ ( : fml.org) ξ makefml
λȤ fml4 λ Ǥ elena@fml.org ̤ͣ
% su fml
% makefml newml elena
Ȥ ޤ ܤ Chapter 5 Ȥ Ƥ
С ɥᥤ (nuinui.net) ξ ϡ ̤ͣΥ ɥ쥹 ٤ƻ ꤷ Ʋ Ȥ
elena@nuinui.net Τ褦 ˼¹Ԥ ޤ
% su root
% makefml newdomain nuinui.net /some/where/nuinui.net
% su fml
% makefml newml elena@nuinui.net
ܰʹ
% su fml
% makefml newml elena@nuinui.net
Ƕ ϡ ɥᥤ ȤϤ ޤ Τǡ ̤ͣ ɥᥤ
ƺ 촶 Τ 뱿 ˤʤ פ ޤ º fml.org Ȥ⤽ Τ褦 ʱ
Ǥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ С ɥᥤ (nuinui.net) Σ̤ͣ 硢 ǽ ˤϡ ֤ Υɥᥤ Ȥ פ │
│ ( ޤ ʤ ?) ɬ Ǥ 路 Chapter 47 Ȥ Ʋ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣΥ С
ǥե Υɥᥤ ( : fml.org) ξ ϡ
% su fml
% makefml subscribe elena rudo@nuinui.net
ǣϣˤǤ (elena ǣϣˡ Ĥޤ @fml.org ʤ Ǥ ) ɥᥤ
(nuinui.net) ξ ϡ ̤ͣΥ ɥ쥹 ٤ƻ ꤷ Ƥ
% su fml
% makefml subscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣΥ С
ǥե Υɥᥤ ( : fml.org) ξ ϡ
% su fml
% makefml unsubscribe elena rudo@nuinui.net
Ǥ ޤ ޤ ɥᥤ (nuinui.net) ξ ϡ ɥ쥹 ᥤ Ǵޤ
٤ƻ ꤷ Ƥ
% su fml
% makefml unsubscribe elena@nuinui.net fukachan@sapporo.iij.ad.jp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ͣ ޥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│makefml config ϼ ޤ ޥ Ǥ ʤ ޤϡ ޤ config.cf │
│ ե Խ Ʋ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Υۥ ȶ
/usr/local/etc/fml/site_default_config.cf ϡ Υۥ Ȥ fml8 ٤Ƥ˱ƶ
ޤ [5]
site_default_config.cf Υե ޥåȤϡ config.cf ( ) ǡ ѿ
config.cf Ǥ ꥹ ⻲ Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
elena ̤ͣ
elena ̤ͣ ޥ /var/spool/ml/elena/config.cf Խ 뤳 ȤǹԤʤ ޤ
config.cf Υե ޥåȤ Postfix Ȥ ʤ Ƥ ޤ (fml4
config.ph fml4 cf ˤ ᤤ Ǥ ե ޥåȤ 㤦 Ȥ Ѥ Ϥʤ )
fml8 HOOK (perl script) ϡ (perl script ե 褦 ) /var/spool
/ml/elena/config.cf ե =cut ʲ ˽Ʋ
=cut Ԥ ( = ) Ʋ Ŭ ɬ ʹ ܤ ɲä Ʋ
ꤷ ʤ ϥǥե Ȥ ޤ ǥե ϥ ȡ 뤷 С ˰ Ƥ
ꡢ
/usr/local/etc/fml/defaults/ С /default_config.cf
Ȥ ե ޤ perl Υ饤 ֥ /usr/local/lib/perl/
5.00503/ Τ褦 С դΥǥ 쥯 ȥ ΤȾ ޤ
ޤ 饤 ֥ ʤɤΥ ȡ fml ΥС Ȥ Υǥ 쥯 ȥ ʤäƤ 뤳 Ȥ
Ʋ λ Ȥ Τ ǥ åץ 졼 ɤ Ƥ ˥ 졼 ɤǤ ޤ fml8
Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. ʤ fml4 μ fml8 ʤΤǤ
2. fml4 fml8 ϲ Ǥ
3. current, stable, release ɤ ɤ Ǥ
4. ɥ ?
1. ʤ fml4 μ fml8 ʤΤǤ
¤ Ѥ 1 bit 餹 Τ :-)
fml8 4 Υ ɤ ƼΤƤư줫 줿 եȥ Ǥ 4 5 ʤ 4
Υ åץ 졼 ɤ Ȼפ 1 bit 餷 8 ˤ ޤ
2. fml4 fml8 ϲ Ǥ
Chapter 8 ˤޤȤ Τǡ Ȥ Ʋ
3. current, stable, release ɤ ɤ Ǥ
ΤȤ fml8 ˤϤ ä 㤤 ե ⤷ ϥС
ƿ
ɤˤĤ Ƥϡ Chapter 3 Ȥ Ʋ
4. ɥ ?
ɥ ϥƥ Ȥ HTML
HTML ϡ http://www.fml.org/software/fml8/ ڤǤ 礦 URL
Ǹ Ƥ Ϻǿ ƤǤ å ǥɥ HTML ȥåס ǥ 쥯 ȥ
index.html.ja 餿 ɤäƤ äƤ
II. fml Υ åȥ åס ̤ͣκ
åȥ åפ ʼ ˱ ƥȥԥå Ȥ˲ ⤷ Ƥ ޤ
Table of Contents
3. fml8 Υ ɤ ɤ
4. Unix fml8 Υ ȡ
5. Unix ̤ͣ
6. Microsft 2000/NT fml8 Υ ȡ
7. fml4 Σ̤ͣ fml8 Σ̤ͣ Ѵ
8. fml4 fml8
9. fml8 Υ åץ 졼 / 졼
10. CGI
11. apache
12. ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 3. fml8 Υ ɤ ɤ
FTP Ф ɤ 롣
fml8 Υ ftp://ftp.fml.org/pub/fml8/ ftp ޤ
ȯ ʶ ڤꤴ Ȥˡ ޤ VERSION 8.0 ʤΤ
8.0 7.99.x ʤɤȤʤäƤ ޤ
7.99 Υե ϡ fml - С ( : fml-7.99.1.tar.gz) Ǥ 7.98
ޤǤΥե ϡ fml - С -
fml-VERSION-YYYYMMDD.tar.gz
Ǥ ե դ äƤ 硢 ο ɤ Ʋ
GitHUB ( : tag v7.99.1 鼫ư 줿 tar.gz )
ftp.fml.org ɤ 硢 ɥ 㤦 Ǥ
ץ Ƥ ʤΤǡ ɤ ⤫ ޤ ޤ ftp.fml.org Τۤ ϡ ./
Documentation/ SGML HTML ѤߤΥɥ ޤޤ ޤ
www.fml.org DZ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
github ؤΥ
https://github.com/fmlorg/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 4. Unix fml8 Υ ȡ
ȡ
configure Ԥ ( ) ˡ 桼 fml ȥ 롼 fml äƤ
% su root
# groupadd fml
# useradd -g fml -m fml
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
configure Ԥ
configure (by GNU autoconf) make Ԥ Ʋ configure ˡ 桼
fml ȥ 롼 fml äƤ ɬ Τ Ʋ ޤǤκ Ȥ
ȡ Τ褦 ˤʤ
% su root
# groupadd fml
# useradd -g fml -m fml
# ./configure
# make install
configure Ŭ script .cf ѿ ޤ
make install Ԥ ˤϡ (configure ) etc/fml/install.cf ˡ
(configure ) install.pl (perl script) ºݤΥ ȡ Ȥ ʤ ޤ
桼 ̾ Ū ʥǥ 쥯 ȥ깽 ʤɤ configure ΰ ѹ Ʋ Ǥ ѿ ʲ
Τ Ǥ configure --help fml Ǥϳƥǥ 쥯 ȥ /fml Ȥ
ä suffix ޤ Ǥ ϡ prefix ʬ ޤǤǤ
configure Υǥե fml Ѥ 쥯 ȥ
--------------------------------------------------------
prefix /usr/local /usr/local
exec_prefix /usr/local /usr/local
bindir ${exec_prefix}/bin /usr/local/bin
sbindir ${exec_prefix}/sbin /usr/local/sbin
libexecdir ${exec_prefix}/libexec /usr/local/libexec/fml
datadir ${prefix}/share /usr/local/share/fml
sysconfdir ${prefix}/etc /usr/local/etc/fml
sharedstatedir ${prefix}/com
localstatedir ${prefix}/var
libdir ${exec_prefix}/lib /usr/local/lib/fml
includedir ${prefix}/include
oldincludedir /usr/include
infodir ${prefix}/info
mandir ${prefix}/man
ơ ѿ configure ΰ Ǿ 뤳 Ȥ Ǥ ޤ
fmlconfdir $sysconfidr/fml /usr/local/etc/fml
mlspooldir /var/spool/ml /var/spool/ml
fml_owner fml fml
fml_group fml fml
default_domain
Υ ץ
configure --help
./configure --help
`configure' configures this package to adapt to many kinds of systems.
... snip ...
Installation directories:
--prefix=PREFIX install architecture-independent files in PREFIX
[/usr/local]
--exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
[PREFIX]
... snip ...
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
--without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)
--without-warning run perl as perl without -w
--with-fmlconfdir=DIR use DIR instead of SYSCONFDIR/fml
--with-mlspooldir=DIR use DIR instead of /var/spool/ml
--with-fml-owner=USER use USER instead of fml
--with-fml-group=GROUP use GROUP instead of fml
--with-default-domain=DOMAIN use DOMAIN as the default ML domain
--with-default-hostname=HOSTNAME use HOSTNAME as the default hostname
--without-mime-component-filter disable mime_component_filter
--with-group-writable-fmlconfdir=DIR instead of \$fmlconfdir/config.gw
--with-ml-home-prefix-map=PATH use PATH as primary_ml_home_prefix_map
--with-group-writable-ml-home-prefix-map
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: configure μ¹
: NetBSD Ǥ /usr/pkg ʲ إ ȡ 롣
% ./configure --prefix=/usr/pkg
: FreeBSD ξ /usr/local ʲ إ ȡ ( ǥե Τޤ )
% ./configure
: main.cf ֤ Ȥ /etc/fml ʤ顢 (Debian Ǥ
)
# ./configure --with-fmlconfdir=/etc/fml
checking for perl... perl
checking for perl... /usr/bin/perl
"checking whether optional useful commands are available or not"
checking for cc... /usr/bin/cc
checking for install... /usr/bin/install
checking for cksum... /usr/bin/cksum
checking for sum... /usr/bin/sum
checking for md5... /usr/bin/md5
checking for digest... /usr/bin/digest
checking for ls... /bin/ls
checking for tar... /bin/tar
checking for gzip... /usr/bin/gzip
checking for zcat... /usr/bin/zcat
checking for gzcat... /usr/bin/gzcat
checking for gunzip... /usr/bin/gunzip
checking for lha... no
checking for ish... no
checking for bzip2... /usr/bin/bzip2
checking for bunzip2... /usr/bin/bunzip2
checking for uuencode... /usr/bin/uuencode
checking for compress... /usr/bin/compress
checking for sendmail... /usr/sbin/sendmail
checking for makemap... no
checking for newaliases... /usr/bin/newaliases
checking for postfix... /usr/sbin/postfix
checking for postalias... /usr/sbin/postalias
checking for postconf... /usr/sbin/postconf
checking for postmap... /usr/sbin/postmap
checking for nkf... /usr/bin/nkf
checking for kakasi... no
checking for namazu... no
checking for pgp... /usr/bin/pgp
checking for pgp5... /usr/bin/pgp5
checking for pgpe... /usr/bin/pgpe
checking for pgpk... /usr/bin/pgpk
checking for pgps... /usr/bin/pgps
checking for pgpv... /usr/bin/pgpv
checking for gpg... /usr/bin/gpg
checking for gpgv... /usr/bin/gpgv
checking for gpgsplit... /usr/bin/gpgsplit
checking for less... /usr/bin/less
checking for more... /usr/bin/more
checking for w3m... /usr/bin/w3m
checking for spamassassin... no
checking for spamd... no
checking for spamc... no
checking for bogofilter... no
checking for clamscan... /usr/bin/clamscan
checking for vi... /usr/bin/vi
checking for ng... /usr/bin/ng
checking for mule... /usr/bin/mule
checking for emacs... no
checking for xemacs... no
configure: creating ./config.status
config.status: creating install.pl
config.status: creating config.sh
config.status: creating fml/etc/install.cf
config.status: creating fml/etc/main.cf
config.status: creating fml/etc/default_config.cf.ja
config.status: creating fml/etc/default_config.cf.en
config.status: creating fml/etc/site_default_config.cf
config.status: creating fml/libexec/loader
config.status: creating fml/bin/fmladdr
config.status: creating fml/bin/fmlalias
config.status: creating fml/bin/fmlconf
config.status: creating fml/bin/fmldoc
config.status: creating fml/bin/fmlhtmlify
config.status: creating fml/bin/fmlsch
config.status: creating fml/bin/fmlproj
config.status: creating fml/bin/fmlpgp
config.status: creating fml/bin/fmlpgp5
config.status: creating fml/bin/fmlpgpe
config.status: creating fml/bin/fmlpgpk
config.status: creating fml/bin/fmlpgps
config.status: creating fml/bin/fmlpgpv
config.status: creating fml/bin/fmlgpg
config.status: creating fml/bin/fmlgpgv
config.status: creating fml/bin/fml
config.status: creating fml/bin/makefml
enabled: perl -w
fml has been configured with the following options:
prefix: /usr/local
exec_prefix: ${prefix}
bindir: ${exec_prefix}/bin
sbindir: ${exec_prefix}/sbin
lib_dir: ${exec_prefix}/lib
libexec_dir: ${exec_prefix}/libexec
mandir: ${datarootdir}/man
datarootdir: ${prefix}/share
datadir: ${datarootdir}
fml process owner: fml
fml process group: fml
fmlconfdir: /etc/fml
ml_home_prefix_map: /etc/fml/ml_home_prefix
mlspooldir: /var/spool/ml
default domain: home.fml.org
default hostname: elena.home.fml.org
mime based filter: yes
Now you must run "make install" as user "root".
: 䡢 פ OS ξ /usr/local ǤϤʤ /usr ľ
ΤǤ 礦 ξ ϡ Τ褦 ˻ ꤷ Ƥ
# ./configure --prefix=/usr --with-fmlconfdir=/etc/fml
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: ƥǥ 쥯 ȥ
줾 ǥ 쥯 ȥ ̤ ʤ ǥե Ǥ /usr/local ʲ ˥ ȡ
뤵
Table 4-1. ǥ 쥯 ȥ ¤
┌───────┬─────────────────────────────────────────────────────────────────────┐
│ ǥ 쥯 │ │
│ ȥ │ │
├───────┼─────────────────────────────────────────────────────────────────────┤
│ │ fml4 /usr/local/fml/.fml │
│/usr/ │default_config.ph ֤ ޤ /usr/local/etc/fml/main.cf Ǥϡ │
│local/ │ Ѥ fml8 ΥС ֥ ξ ( ǥ 쥯 ȥ ) ʤɤ ǽ Ǥ ( ڽ │
│etc/fml│ ס С åפ ꤬ ä ˤϡ С 뤳 Ȥǡ │
│ │ ˸Ť С ؤ ڤ ᤷ Ǥ ) │
├───────┼─────────────────────────────────────────────────────────────────────┤
│/usr/ │ │
│local/ │ ¹ԥե ( fml4 /usr/local/fml ) │
│libexec│ │
│/fml │ │
├───────┼─────────────────────────────────────────────────────────────────────┤
│/usr/ │ │
│local/ │perl ⥸ 塼 뷲 ֤ ( fml4 /usr/local/fml ) │
│lib/fml│ │
├───────┼─────────────────────────────────────────────────────────────────────┤
│/usr/ │ │
│local/ │ ʤɤΥƥ 졼 Ȥ ֤ ( fml4 /usr/local/fml/messages/ ) │
│share/ │ β ˸ ¸ Υ ֥ǥ 쥯 ȥ꤬ │
│fml │ │
├───────┼─────────────────────────────────────────────────────────────────────┤
│ │ ǥե ɥᥤ ̷ͣ Υȥåץǥ 쥯 ȥꡣ fml4 Ū ǻȤ ޤ : /var/│
│ │spool/ml Υ ʤ configure ǻ ꤷ owner ( ǥե ϥ桼 fml) │
│/var/ │ ꤵ ʤ ɥᥤ Ȥ ̤ prefix Ѱդ Ʋ Ȥ fml.org │
│spool/ │ /var/spool/ml ǡ nuinui.net ˤ /var/spool/nuinui.net ʤɤΤ褦 ˡ │
│ml │ Υɥᥤ ǥ 쥯 ȥ ط ml_home_prefix_maps ( С ɥᥤ │
│ │ ) ˵ Ҥ ޤ ( makefml/fml newdomain ޥ ꤵ ) С│
│ │ ɥᥤ ܺ٤ Chapter 47 Ȥ Ʋ │
└───────┴─────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml Υ ȡ : make install
configure Ը塢 桼 root ˤʤꡢmake install Ԥ Ʋ
% su root
# make install
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│configure ϥ桼 root Ǽ¹Ԥ Ϥ make install 桼 root │
│Ǽ¹Ԥ Ʋ │
│ │
│% su root │
│# ./configure │
│# make install │
│ │
│ ְ㤨 ʤ 褦 ˡ Ϥ ᤫ configure root Ǽ¹Ԥ Τ ⤷ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
main.cf Խ
ɬ ʤ /usr/local/etc/fml/main.cf Խ Ʋ configure ʤ δĶ ˹
main.cf Ƥ ʤΤ configure Υ ץ ꤬
ϡ ޤ ʤ Ϥ Ǥ
mani.cf ȤκǤ Ū ٤ ꡢ Ȥ Х ȶ fml
ʤɤ site_default_config.cf Ǥ ƣ̸ͣ ƣ̤ͣΥۡ 쥯 ȥ
config.cf ե Ʋ
դˤ С Υ ꥹ Ȥ Τ褦 ˤʤ
$ml_home_dir/config.cf
site_default_config.cf
main.cf
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: /usr/local/etc/fml/main.cf
/usr/local/etc/fml/main.cf ϳƣ̤ͣ Ϥ main.cf ϡ ǥ 쥯 ȥ ץ
Υ桼 Ѥ fml8 С λ ɡ ܾ ꤹ
fml Υץ ư ˻ Ȥ ޤ
main.cf Υե ޥåȤ .cf [6]
=
Ǥ
#
# $FML: main.cf.sgml,v 1.11 2008/08/18 20:52:59 fukachan Exp $
#
# fml version
# This is important
# Example: fml 8.0
# fml-current YYYYMMDD
# fml-devel YYYYMMDD
fml_version = current-20020701
fml_owner = fml
fml_group = fml
###
### DIRECTORIES
###
# Example: /usr/local
prefix = /usr/local
exec_prefix = ${prefix}
# $config_dir holds the global main configuration and
# several version-dependent default configurations
# Example: /usr/local/etc/fml
config_dir = /usr/local/etc/fml
# Example: /usr/local/etc/fml/defaults/$fml_version
default_config_dir = $config_dir/defaults/$fml_version
# defined for convenience, for example, we need this variable
# at include, include-ctl, which needs expansion of ../libexec/fml/fml.pl
# Example: /usr/local/libexec/fml
executable_prefix = ${exec_prefix}/libexec/fml
# Example: /usr/local/libexec/fml/$fml_version
libexec_dir = ${exec_prefix}/libexec/fml/$fml_version
# Example: /usr/local/lib/fml/$fml_version
lib_dir = ${exec_prefix}/lib/fml/$fml_version
# Example: /usr/local/share/fml/$fml_version
share_dir = ${prefix}/share/fml/$fml_version
# site local library location
# which is prepared but not used by fml itself
local_lib_dir = ${exec_prefix}/lib/fml/site_local
# ml's home directories
# $ml_home_dir (e.g. /var/spool/ml/elena ) is taken from loader's @ARGV.
# This is compatible with fml 4.0.
# Example: /var/spool/ml
default_ml_home_prefix = /var/spool/ml
###
### CONFIGURATION FILES AND DEFAULT PARAMETERS
###
# default domain
default_domain = fml.org
# version dependent default_config.cf location
# whic holds
# Example: /usr/local/etc/fml/defaults/8.0/default_config.cf
default_config_cf = $default_config_dir/default_config.cf
# domain specific configurations
# Example: /usr/local/etc/fml/domains/fml.org/default_config.cf
domain_default_config = $config_dir/domains/$default_domain/config.cf
# virtual format: domain directory
# for example,
# fml.org /var/spool/ml/fml.org
# nuinui.net /var/spool/ml/nuinui.net
virtual_maps = $config_dir/virtual
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
site_default_config.cf Խ ( ץ )
/usr/local/etc/fml/site_default_config.cf ϡ Υۥ ȶ [7] Ǥ
ɬ ˱ Խ Ƥ
ꡢ ƣ̤ͣ ( : /var/spool/ml/elena/config.cf) ͥ
ǥե Ǥ fml4 ȹ 뤿 Ȥ :) subject Υ ʤ
ȥե 륿 äƤ ޤ
# $FML: fml_on_unix.sgml,v 1.13 2008/08/18 13:21:42 fukachan Exp $
#
# site default_config.cf EXAMPLE
#
# fml-devel loads .cf files in this order for elena ML.
# 1. ${prefix}/etc/fml/defaults/$VERSION/default_config.cf
# 2. ${prefix}/etc/fml/site_default_config.cf
# 3. ${prefix}/etc/fml/domains/$DOMAIN/default_config.cf
# 4. /tmp/dir/elena/config.cf
#
# This file overrides the default "default_config.cf" configurations
# in the following way.
#
# We want to disable the subject tag in articles by default.
article_header_rewrite_rules -= rewrite_article_subject_tag
# mime based comonent filter
use_mime_component_filter = yes
# [site specific options]
# Example:
# key = value
# key += value
# key -= value
=cut
#
# you can write hooks here after.
# Example:
# $distribute_run_start_hook = q{ ... };
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե 륿 뤫
ǥե ǤϤ ٤ƤΥե 륿 ͭ fml4 ο侩 Ƥ ޤ
֥ե 륿 Τ פȤ 뤫 ⤷ ƥǥե ϸ ˤ Ƥ
ե 륿 äƤ Ϥ褤 ΤǤ mime component filter Υǥե
Τ ϴ ۣ Ǥ ǥե Ǥϡ ̤ͣؤ Τ text/plain Υ ߤȤ Ƥ
text/html Ƥ 뿲 ܤ ź ե Ƥ 륦
륹 ե Ǥ ̤
ʤ ( ٤ƤΣ̤ͣ ) mime component filter site_default_config.cf
use_mime_component_filter = no
Ȥ Ƥ
mime component filter 롼 ޥ Ȥ
site_default_config.cf Ǥ
use_mime_component_filter = yes
Τޤޤˤ ơ /usr/local/etc/fml/mime_component_filter ޥ Ƥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ Ż ź ե ϸ 褦 ʤΤǡ ɻŻ ѤΣ̥ͣ ФȤ │
│ƻȤ ʤ顢 ȡ │
│ │
│[/usr/local/etc/fml/site_default_config.cf] │
│ │
│use_mime_component_filter = no │
│ │
│ ѹ Ƥ Ȥ褤 Ǥ 礦 │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
С ɥᥤ
ǽ ( Ĥޤꡢ Υɥᥤ ̤ͣ ) newdomain ޥ ml_home_prefix_maps
Ѥ ɥᥤ ml_home_prefix б ط Ƥ
[/var/spool/ml/etc/fml/ml_home_prefix]
nuinui.net /var/spool/nuinui.net
newdomain ޥ ˤĤ Ƥ ֣̤ͣκ ޤ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ml_home_prefix_maps Υѥ ѹ /usr/local/etc/fml/main.cf Խ │
│Ʋ ( Ȥ⡢ Ƥ פǤ ) │
│ │
│ ʤ site_default_config.cf ϡ ɥᥤ ؤ Ŭ Ȥ Ƥ │
│ Ĥޤꡢ С ɥᥤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
륵 Ф (Postfix)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│[ ʥӥ ] Postfix ΤޤȤ │
│ │
│[/etc/postfix/main.cf] │
│ │
│(1) allow_mail_to_commands ( ǽ ) │
│ │
│(2) alias_maps ɲ ( ɥᥤ Ȥ˰ ) │
│ │
│(3) virtual_maps ɲ ( С ɥᥤ Ȥ˰ ) │
│ │
│ ̤ͣ ȤΡֺ Ϥ ( ̤ͣο Postfix ѹ פǤ ) │
└─────────────────────────────────────────────────────────────────────────────┘
餫 ἡ Τ褦 Postfix Ƥ Ʋ Ƥ makefml
newml (fml ML newml) Ԥ ǣ̤ͣ ưŪ ʤ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ʣ ɥᥤ Ȥ ɥᥤ Ȥ Postfix alias_maps virtual_maps ɲ │
│꤬ɬ ˤʤ뤳 Ȥ Ʋ │
│ │
│ ǽ ǣϣˤǤ Υɥᥤ Ĥ Ƥϡ Postfix │
│ Ȥ makefml ʤ fml ޥ ǣ̤ͣκ Ǥ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Postfix Բ ˤ 롣
allow_mail_to_commands = alias,forward,include
̥ͣɥ饤 Ф Ԥ 뤿 ɬ ܤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥե ɥᥤ ( : fml.org) Σͣ
ˤ postfix /etc/postfix/main.cf Τ褦 ˤ Ƥ
[/etc/postfix/main.cf]
# Postfix Բ ˤ 롣
allow_mail_to_commands = alias,forward,include
# /etc/mail/aliases OS ǥե alias
# /var/spool/ml/etc/mail/aliases ϥǥե ɥᥤ Ѥ alias (fml )
alias_maps = hash:/etc/mail/aliases
hash:/var/spool/ml/etc/mail/aliases
hash:/var/spool/ml/etc/mail/aliases ֥ǥե Σ̥ͣ ס /etc/mail/aliases פǤ (
ǥե Σ̥ͣ ס 롦 ѥ ϥ ȡ Ѥ ޤ ) CUI newml ޥ
Ԥ ̾ hash:/var/spool/ml/etc/mail/aliases ե åץǡ Ȥ Ƥ 뤳 Ȥ
ɽ Τǥѥ ǧ ƤߤƲ newml ޥ λȤ ˤĤ Ƥξܺ٤ Chapter 4 ξϤȤ
Ƥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ ޤ mydestination ˥ǥե Υɥᥤ ( 餯 $mydomain ) ä │
│ 뤳 Ȥ ǧ Ʋ │
│ │
│ Ȥ │
│ │
│% postconf mydestination │
│ │
│ Ԥ Postfix Ƥ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
С ɥᥤ ( : nuinui.net)
/etc/postfix/main.cf alias_maps virtual_maps ä ɬ Ǥ
[/etc/postfix/main.cf]
# Postfix Բ ˤ 롣
allow_mail_to_commands = alias,forward,include
# nuinui.net alias ɲ
alias_maps = hash:/etc/mail/aliases
hash:/var/spool/ml/etc/mail/aliases
hash:/var/spool/nuinui.net/etc/mail/aliases
# nuinui.net virtual ( С ɥᥤ λؼ ) ɲ
virtual_maps = hash:/var/spool/nuinui.net/etc/postfix/virtual
makefml newml Ԥ /var/spool/nuinui.net/etc/mail/aliases /var/
spool/nuinui.net/etc/postfix/virtual makefml ˤ Ƽ ưŪ ˹ ( ̤
Τ ͡ )
С ɥᥤ ml_home_prefix_maps ꤬ɬ Ǥ
ml_home_prefix_maps
[/var/spool/ml/etc/fml/ml_home_prefix]
nuinui.net /var/spool/nuinui.net
Ȥ ɥᥤ ǥ 쥯 ȥ б ޤ б newdomain
ޥ ꤷ ޤ ܺ٤ Chapter 4 ξϤȤ Ƥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fml8 virtual_maps Υե Postfix virtual_maps Ǥ Ƕ │
│ Postfix ˤ sendmail Τ⤢ fml8 Ǥ Τ 餢 postfix │
│ ȤäƤ Ȥ Ʋ │
│ │
│mydestination ˤϡ ǥե Υɥᥤ ( 餯 $mydomain) Ȥ Ǥ │
│ С ɥᥤ ( Ǥ nuinui.net) mydestination ɲä Ϥ │
│(Postfix virtual_maps ͤ mydestination Ǥ ߤʤ Ƥ ޤ ) դ │
│Ʋ │
│ │
│ С ɥᥤ Ӥ alias_maps ˤϿ ɥᥤ aliaes │
│virtual_maps ˤ virtual ե ä │
│ │
│ ʤߤˡ Ƕ postfix Ǥ virtual_alias_maps Ȥ Τ Ǥ ǥե │
│ (/etc/postfix/main.cf.default) │
│ │
│virtual_alias_maps = $virtual_maps │
│ │
│ ȤʤäƤ 뤿 ᡢ virtual_maps Ǥ virtual_alias_maps Ǥ⤫ ޤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
륵 Ф (qmail)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fml8 qmail ϡ С ɥᥤ Τ ǥե ɥᥤ ( Τ ) ʤΤ │
│ Ĥͤ /var/qmail/control/virtualdomains Ѥ Ȥ Ƥ ޤ fml4 Ȥϰۤʤ│
│ Τ Ʋ │
│ │
│[ ʥӥ ] qmail ΤޤȤ │
│ │
│(1) ɥᥤ Ȥ Ϥ newdomain (makefml ⤷ fml ޥ ) │
│ │
│(2) newml ǡ ҤȤģ̤ͣ Ƥߤ (makefml ⤷ fml ޥ ) │
│ │
│(3) 줿 ˡ /var/qmail/control/virtualdomains Խ │
│ ϡ newdomain ǻ ꤷ ס /etc/qmail/virtualdomains │
│ │
│(4) qmail-send HUP ʥ롣 │
│ │
│ ̤ͣ Ȥ ( Ĥޤ ̤ο qmail ѹ פǤ ) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
makefml newml ʤ fml ML newml Ԥ ǣ̤ͣ ưŪ ʤ ˡ
餫 qmail Ƥ Ʋ /var/qmail/control/virtualdomains
긫 ( ɥᥤ Ȥ ) /var/spool/ml/etc/qmail ˺
ʲ Υɥᥤ ǽ ̤ͣ ʼ ˤĤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥե Υɥᥤ ( : example.org) ξ
ǥե Υɥᥤ ( : example.org) ϻȤ ʤ Ȼפ ΤǤ
ǥե ɥᥤ Ϥʤ ml.example.org ʤɤȣͣ ѤΥ ֥ɥᥤ ƻȤ Τ ȻפäƤ ޤ
:
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ ǥե ɥᥤ Ƥ /var/qmail/control/virtualdomains θ ( : /var/spool│
│/ml/etc/qmail/virtualdomains) │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
С ɥᥤ ( : ml.example.org)
ml.example.org Ǥκǽ ̤ͣ qmail virtualdomains ե
ơ
/var/qmail/control/virtualdomains
Խ Ƥ ޤ Υɥᥤ /var/qmail/control/rcpthosts ˤ ɲä Ƥ
[/var/qmail/control/rcpthosts]
ml.example.org
ƥɥᥤ Ȥˡ ˰ /var/qmail/control/virtualdomains /var/qmail/control/
rcpthosts Խ Ȥ ư ǣͣ̿ Ԥʤ ˤʤ
( qmail 1.03 on NetBSD/i386 5.0.2 ):
% su root
# makefml newdomain ml.example.org /var/spool/ml.example.org
# su fml
% makefml newml test@ml.example.org
... ...
% exit
# echo ml.example.org >> /var/qmail/control/rcpthosts
# cat /var/spool/ml.example.org/etc/qmail/virtualdomains \
>> /var/qmail/control/virtualdomains
# pkill -HUP qmail-send (qmail-send HUP ʥ )
: /var/qmail/control/virtualdomains 椷 Ƥ qmail-send Ǥ
qmail-send ϥ Ȥ ˤΤ virtualdomains ե ߹ ߤޤ
virtualdomains ե ɤ߹ ߤ 뤿 qmail-send HUP ʥ
makefml newml ե ˤĤ Ƥ makefml newml qmail ˴ؤ Ȥ Ƥ
qmail
/var/qmail/control/virtualdomains
ˡ 餫 ἡ Τ褦
ml.example.org:fml-ml.example.org
С makefml ʤ fml ޥ ΥС ɥᥤ
~fml/.qmail-* ե 뷲 ǡ ǣͣ ꤬ͭ ʤ롢 Ȥ Ȥ
ޡ root qmail Σͣԣ Ȱ ʤΤǡ Ȥꤿ ƤƳڤȤ
ȤϤʤ Ǥ ͡ .qmail-* ե 뷲 鵤 ˤ Ƥʤ ɡ 鵤
( ԡ ) Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. 桼 fml ʳ ( Ȥ м ʬ̾ ) fml
2. ȡ Ȥκݡ 桼 fml ˤʤ륿 ߥϡ
3. ɥ ȴ Υ ȡ
4. ȡ perl Υѥ
5. jperl fml
6. elena ML ( )
7. /var/spool/ml/etc/ ʲ aliases ե Ƥ Ǥ
8. 륵 Ф Unix Dz fml Windows 2000/NT4
9. ̤ͣ ( ƽ )
10. ְ㤨 rmml Ƥ ޤä ̤ͣ
11. loader Bootstrap() ĤʤɤȤ 顼 Фޤ ɤ 褤
1. 桼 fml ʳ ( Ȥ м ʬ̾ ) fml
fml ץ Υ桼 fml ¾ Υ桼 ( Ȥ another) ˤ ΤǤ
configure ץ --with-fml-owner ѹ Ǥ ޤ
./configure --with-fml-owner=another
ʬ Υ Ǽ¹Ԥ Ϥ ޤ 礦 fml 桼 Ѱդ 뤳 Ȥ 侩 Ǥ
aliases ư ǤϤʤ ̥桼 θ ¤Ȥ ƣ̤ͣ Ԥ Ǥ procmail fml8
⤢ /var/spool/ml/etc/procmail/procmailrc ͤˤ Ʋ
2. ȡ Ȥκݡ 桼 fml ˤʤ륿 ߥϡ
ɤ configure μ¹Ԥϥ桼 fml ǹԤʤäƤ⤫ ޤ ޤ ȡ 桼 root
ǹԤʤäƲ
դˡ ٤Ƥκ ( ɤ 饤 ȡ Ǥ ٤ ) 桼 root ǹԤʤäƤ ꤢ
3. ɥ ȴ Υ ȡ
˥ ȡ 뤷 Ƥ ʤ ʤ顢 ߡ fml8 ϥɥ ȡ 뤷 Ƥ ޤ ǡ
դˡ ɥ ɬ ʤ饽 Documentation/ ʲ ʾ ( Ȥ /usr/
local/share/doc/fml8/ С /) ˥ ԡ Ʋ
4. ȡ perl Υѥ
configure Ԥ ˴Ķ PATH ꤷ Ĥ ¹Ԥ Ʋ
% env PATH=/some/where/:$PATH sh configure
5. jperl fml
ư ɤ ޤä ʬ
6. elena ML ( )
--force Ĥ newml Ԥ Ʋ
% makefml --force newml elena
7. /var/spool/ml/etc/ ʲ aliases ե Ƥ Ǥ
Ϥ Ƥ⤫ ޤ ޤ Ƥϼ ʬ Ǵ 褦 ˤ Ʋ
makefml/fml ư Խ Τǡ ̤ͣ к ͣ
ʤäƤ⸵ ˤ ޤ ǡ դ Ʋ
8. 륵 Ф Unix Dz fml Windows 2000/NT4
: ƥ Ȥ Ƥ ޤ
fetchfml Windows 2000/NT4 MTA Unix ɤ Ǥ 礦
9. ̤ͣ ( ƽ )
rmml ơ ⤦ newml Ԥ Ǥ
% makefml rmml elena
% makefml newml elena
10. ְ㤨 rmml Ƥ ޤä ̤ͣ
reviveml ޥ äƲ
11. loader Bootstrap() ĤʤɤȤ 顼 Фޤ ɤ 褤
֡ ȥ ȥ פΥ ɤ ޤ Ƥʤ Τǡ ޤ fml boot loader (/usr/local/fml/
libexec/loader) ؤ 뤳 Ȥ⤢ ꤨ ޤ
ä ϡ make install
You must upgrade loader. Replace it ? [y/n]
y ȡ ȡ 餬 loader 촹 ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 5. Unix ̤ͣ
ޥ 饤 ٱ makefml fml makefml fml4
å Ǥ fml ϰ ¤ӽ礬 㤦 ޥ Ǥ
makefml COMMAND ML (optional arguments)
fml ML COMMAND (optional arguments)
ʲ Ǥ makefml ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
makefml newml ǣ̤ͣ ( ǥե ɥᥤ )
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ ǥե ɥᥤ fml4 Ǥ │
│ │
│ С ɥᥤ Ȥ fml4 Ȥϣͣ ΰ ۤʤ С ɥᥤ ܺ٤ˤĤ Ƥ│
│ the Section called makefml newml ǣ̤ͣ ( ǥե ɥᥤ " ʤ " ) Ȥ│
│ Ʋ │
└─────────────────────────────────────────────────────────────────────────────┘
̤ͣκ makefml äƹԤʤ ޤ Ȥ fml4 Ǥ
% su fml
% makefml newml elena
... Ҥ Ϥ (ά) ...
ǥե /var/spool/ml ʳ Υѥ ϡ Τ Ť줫 äƲ
(1) ȡ configure ץ ѹ Ƥ (2) ( С ɥᥤ Ȥߤ
) makefml newdomain ޥ ǻȤ ѥ 롢
% su root
# makefml newdomain fml.org /var/spool/virtual/fml.org
# exit
% su fml
% makefml newml elena
... Ҥ Ϥ (ά) ...
: ɥ ξ Ǥ ڤ Ƥ ˡ ( ᥤ Ƥ Ȳ
) Ϥ ᤫ ̤ͣ ɥᥤ Ǥα 侩 Ǥ
makefml newml elena פ Ԥ Τ褦 ʽ Ԥʤ ޤ
• /var/spool/ml/elena
config.cf
include
include-ctl
ե ɤ (Ŭ ͣ ᥤ Ѵ ʤ )
• /var/spool/ml/etc/mail/aliases elena ̤ͣ Ź ࡣ postalias ޥ
/var/spool/ml/etc/mail/aliases.db (Postfix )
• ~fml/.qmail-* ե 뷲 (qmail )
• procmailrc θ ( Ǥ )
• HTML 줿 Ȥ ưʲ γ Ѱդ /
~fml/public_html/fml/mlarchive/$domain/$ml/
Ȥ elena@fml.org ʤ
~fml/public_html/fml/mlarchive/fml.org/elena/
Ѱդ 롣 ǥե Ǥϡ HTML 줿 ưŪ ˺ ( ǥե
Ǥ apache ̵꤬ Ϥ ʤΤ ͥåȤˤϸ ʤ )
• CGI ե Ѱդ 롣 ɥᥤ ְΤ ե ( Υɥᥤ ̤ͣ
)
~fml/public_html/cgi-bin/fml/$domain/admin/config.cgi
ޤ ƣ̤ͣǰ ְΤ ե ( Σ̤ͣ Ǥ )
~fml/public_html/cgi-bin/fml/$domain/ml-admin/$ml/config.cgi
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
makefml newml ǣ̤ͣ ( ǥե ɥᥤ " ʤ " )
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ ǥե ɥᥤ Ϥʤ fml4 礭 ۤʤ (1) ǽ newdomain │
│ ޥ (2) ͣ ˤϥɥᥤ Ĥ 롢 Ǥ │
└─────────────────────────────────────────────────────────────────────────────┘
̺ͣ ˤ makefml ޤ Ȥ fml4 Ǥ ʤ ͣ ˤ
ɥᥤ ǤĤ Ȥ ۤʤ դ Ʋ
( ɥᥤ Ȥ Ϥ ) newdomain ޥ ˤ ɥᥤ Ǥ
Ȥ С nuinui.net ɥᥤ Σ̤ͣ Ϥ
% su root
# makefml newdomain nuinui.net /var/spool/virtual/nuinui.net
# exit
% su fml
% makefml newml elena@nuinui.net
Ȥʤ ܰʹߤ
% su fml
% makefml newml rudo@nuinui.net
ǣ̤ͣ Ǥ ޤ
newdomain ޥ Ǥϡ ֥ɥᥤ ȡֻȤ ml_home_prefix ǥ 쥯 ȥ Υڥ ޤ
ϥϥå
{ nuinui.net => /var/spool/virtual/nuinui.net }
̣ ޤ Υ ޥ /usr/local/etc/fml/ml_home_prefix ե
ޤ Ǥ ml_home_prefix ե ιԤ ä
nuinui.net /var/spool/virtual/nuinui.net
ʤߤˡ б ط ä 륳 ޥ rmdomain Ǥ
newml ޥ λȤ ϡ Σͣ ɥᥤ Ĥ פˤ ǥե ɥᥤ
ˡ Ǥ
ޤ С ɥᥤ makefml newml ϳ MTA ȤΥС ɥᥤ 긫
Ȥ
/var/spool/nuinui.net/etc/sendmail/virtusertable
/var/spool/nuinui.net/etc/postfix/virtual
/var/spool/nuinui.net/etc/qmail/virtualdomains
/var/spool/nuinui.net/etc/procmail/procmailrc
MTA ѹ λ ͤˤ Ʋ
ʤߤ procmail ϡ ( /var/spool/nuinui.net/etc/procmail/procmailrc )
ɥᥤ Ĥ ʤΤǡ ̥С ɥᥤ ѤȤ 櫓 ǤϤ ɤ Ǥ 긫
ѤǤ ޤ
ʾܺ٤ϡ С ɥᥤ ξϤȤ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
륵 Ф (Postfix)
Important: ݤȤʤ ᥤ 䤹 ݡ ɥᥤ Ȥ /etc/postfix/main.cf ؤ ɲú
( ǽ ) ɬ Ǥ
ɥᥤ Ȥ˰ fml8 κ 븫 ˽ ä alias_maps ( С ɥᥤ ϡ
alias_maps virtual_maps ξ ) ѹ Ƥ С ƣ̤ͣκ ̤ʺ Ϥ
(fml8 Postfix ưŪ ˹ )
Postfix Ĥ Ƥ the Section called 륵 Ф (Postfix) in
Chapter 4 Ȥ Ʋ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fml8 OS aliases ( : /etc/mail/aliases) ե ϴؤ ޤ ( ʤɤϤ │
│ޤ ) │
│ │
│fml8 ƥɥᥤ Ȥ Ѱդ alias ե $ml_home_prefix/etc/│
│mail/aliases ä Υե 뤫 aliases.db Ȥ │
│ ʤ ޤ ( ̤ͣκ ʺ ϡ fml8 ޤ Ǥ ޤ ) │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: /var/spool/ml/etc/mail/aliases Υե ޥå
fml8 ̤ aliases $ml_home_prefix/etc/mail/aliases
ɲä
### ###
# address for post
elena: :include:/var/spool/ml/elena/include
owner-elena: fukachan
# address for command
elena-ctl: :include:/var/spool/ml/elena/include-ctl
owner-elena-ctl: fukachan
# maintainer
elena-request: elena-admin
elena-admin: fukachan, elena-error
# error analyzer
elena-error: :include:/var/spool/ml/elena/include-error
owner-elena-error: fukachan
### ###
С ɥᥤ $ml_home_prefix $virtual_maps ˤ äƼ ưŪ Ѳ
ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
륵 Ф (qmail)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│qmail ͣ Ѥ˰ Υɥᥤ ޤ Ȥ Ȥ Ƥ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
ͣ ѤΥɥᥤ 䤹 Ӥˡ ꤬ɬ Ǥ fml qmail פǤ
ͣ Ѥ˥ɥᥤ 䤹 ݤˤ /var/qmail/control/virtualdomains /var/qmail/control/
rcpthosts ä qmail-send HUP ʥ
˰ Ф褤 ǡ ߣ̤ͣκ fml8 뤬 ư
ǹԤʤ ޤ ޤ ǣϣˤǤ
ܺ٤ϡ qmail ˤ ̺ ˡ the Section called 륵 Ф (qmail) in
Chapter 4) Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե config.cf Υ ޥ
makefml ϡ makefml newml Ԥ ݤˡ Σ̤ͣ config.cf ʤɤ 뷲 켰
Ʊ ˡ MTA fml ˻Ȥ ե Ѱդ ޤ MTA
ϡ Postfix/Sendmail include ե 뷲 qmail ~fml
/.qmail-* ʤɤ Ǥ
% su fml
% makefml newml elena
... snip ...
% ls /var/spool/ml/elena
config.cf include include-ctl include-error
... snip ...
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ 塼 뤬̤ ʤΤǡ ̤ͣΥ ޥ config.cf ǥ │
│ Խ Ʋ │
└─────────────────────────────────────────────────────────────────────────────┘
makefml newml config.cf ˤϡ ۤȤ ޤ ( Ĥޤ ե
ȤˤʤäƤ ޤ ) config.cf ե ˤ ѿ ml_domain ml_name ⥳
ȤˤʤäƤ ޤ ϥ ޥ ΰ 鼫ưŪ ˷ ꤵ Ǥ ( ơ ȤΤޤޤ
OK)
Ȥ /var/spool/ml/elena/include ե
"| /usr/local/libexec/fml/distribute elena@fml.org"
/var/spool/ml/elena/include-ctl ե
"| /usr/local/libexec/fml/command elena@fml.org"
ʤɤȤʤäƤ ޤ MTA 鵯ư 줿 /usr/local/libexec/fml/distribute ޥ ʤɤ
Υ ޥ elena@fml.org ml_domain ml_name Ū ꤷ ޤ
( Τ config.cf Ǥϥ ȤΤޤޤ ꤢ )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. newml ˣ̴ͣ Υ 륢 ɥ쥹
2. Ȥ MTA θ
3. ̥桼 / ѤΥ ֥ڡ Ѱդ ΤǤ
1. newml ˣ̴ͣ Υ 륢 ɥ쥹
newml ˡ Σͣ ѤΥ ꥢ κݡ
${ml_name}-admin: Υ 륢 ɥ쥹
ʬ ˤ $newml_command_ml_admin_default_address ǥե Ǥϡ
ɤΣ̤ͣǤ /usr/local/etc/fml/main.cf ԤΥ ɥ쥹 $fml_owner
Ȥ ޤ Υ ɥ쥹 ѹ site_default_config.cf
$newml_command_ml_admin_default_address ˥ 륢 ɥ쥹 ꤷ Ʋ
$newml_command_ml_admin_default_address = 륢 ɥ쥹
ޤ $ml_name ʤɡ ¾ ѿ ѹ ĤǤ
$newml_command_ml_admin_default_address = $ml_name-owner@$ml_domain
2. Ȥ MTA θ
newml_command_mta_config_list ˥ ȡ 뤵 MTA Υꥹ Ȥ ޤ
פ MTA Ʋ
Ȥ С qmail Ǥ
[/usr/local/etc/fml/site_default_config.cf]
newml_command_mta_config_list -= qmail
Ȥ Ƥ ~/.qmail-* ե ʤ
3. ̥桼 / ѤΥ ֥ڡ Ѱդ ΤǤ
2008/09/09 ʹߤ fml8 ϡ newml ˡ ̥桼 / CGI Ƥ ޤ
CGI URL ߤƲ
ʤ ǥե Ǥ CGI Ȥ ʤ 褦 ˤʤäƤ ǡ CGI Chapter 10 ξϤȤ
CGI Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 6. Microsft 2000/NT fml8 Υ ȡ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ ޤ fml8 ޤ ʤ ξϤϥ ߡ ǡ֤ ʤ פȽ ˺ Ƥ │
│ ߤޤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 7. fml4 Σ̤ͣ fml8 Σ̤ͣ Ѵ
2004/03: fml4 $DIR ($ml_home_dir ˤ ) Ȥ /var/spool/ml/elena
ʲ Υե 뷲 fml8 ι ؼ ư 륳 ޥ ޤ ޤ
ǽ Ū ʤ ǡ 缡 ͽ Ǥ
2004/11: fml4 fml.pl fml8 fml.pl 촹 Ȥ ޤ Ĥޤꡢfml8 ˤ
fml4 ߥ Ǥ fml4 fml.pl fml8 fml.pl
촹 fml4 fml8 ؤΥ åץ 졼 ɤ ǽ ˤ 褦 Ȥ ΤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: fml4 fml8 ؤΰܹ (1) fml8 ؤ Ѵ
褦 fml4 fml8 ؤΰܹԤȤ ȤǤ fml4 μ¹ԥե fml8 Ǿ
Τޤ Ȥ 櫓 ǤϤ
fml8 Ǥϡ ᤤ Ȥ ޤ κݤˤ⡢ ե ư ʤɡ Хå
饦 Ǥϡ ޤ ޤʽ ʤ Ƥ ޤ
⤽ 4 8 Ǿ Ƥ ޤ ȡ Ƥ˰ܹԤ 뤳 Ȥˤʤ뤷 Υ 顼 ꥫ Х꤬
Ǥ ꡢ İܹԤ Ƥ Ǥ 礦 ޤ İܹԤ ⡢ Ǥ
Ǥ Ǥ
櫓 ǡ ̤ͣ İ ܹԤǤ ʻ Ȥߤˤ Ƥ Ǥ ꥫ Х
ɤ Ȼפ 櫓 Ǥ
ʤߤˡ ͤ Ƥ ϡ Ǥ
1. fml8 ȡ 뤹
2. (Postfix ξ ) alias_maps fml8 aliases ɲ
:
alias_maps = hash:/etc/mail/aliases
hash:/var/spool/ml/etc/aliases (fml4)
hash:/var/spool/ml/etc/mail/aliases (fml8)
3. fml4 ML fml8 Ѵ 롣
fml $ml mergeml fml4 $DIR
Ȥ
fml elena mergeml /var/spool/ml/elena
fml8 ذܹԤ ̤ͣ Ф 3. ֤
aliases include μ ư ϡ makefml mergeml ޥ ޤ fml4
С ꥹ Ȥ fml8 Ѵ Ȥ mergeml ޥ Ԥʤ ޤ
ˡ Ƥ config.ph Ǥ config.ph Ǥ
fml8 config.cf ư Ǥ Ƥ Ǥ
ʤ ϡ Subject Υ ¤ fml4 makefml config (
塼) ѹ Ǥ Ϥ ꤷ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: fml4 fml8 ؤΰܹ (2) fml4 μ¹ԥե 촹 ΤޤȤ
2004/11: fml4 fml.pl fml8 fml.pl 촹 Ȥ ޤ
Postfix /usr/sbin/sendmail (sendmail ߴ ޥ ) Ʊ ΰ ȹͤ Ƥ
Ȥ С Τ褦 link äƤ
% su fml
% make configure
% su root
# make install
# mv /usr/local/fml/fml.pl /usr/local/fml/fml.pl.orig
# ln -s /usr/local/libexec/fml/fml.pl /usr/local/fml/fml.pl
# ln -s /usr/local/libexec/fml/msend.pl /usr/local/fml/msend.pl
# ln -s /usr/local/libexec/fml/mead.pl /usr/local/fml/libexec/mead.pl
Τˤ fml4 ΤޤȤäƤ ǤϤ fml.pl (fml8) ư
줿 config.cf Ĥ ȡ ̤ͣΥۡ 쥯 ȥ config.ph
config.cf Υե ߹ fml8 ץ ư Ƥ ޤ
ե ư ϰϤϸ¤ Ƥ ޤ fml4 Υ 塼 ǽ (ñ )
ʤ ư Ʋ Ȥ ʤ ˤʤäƤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: fml4 fml8
fml8 fml4 ö˺ 줫 ס ƥ ǥ 줿 եȥ Ǥ Τ ᡢfml4
fml8 Ǥ б ط ʤ ǽ ѿ
ޤ ط ä Ȥ Ƥ⡢ а б ǤϤʤ Ǥ
ʲ Ĥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ï Ǥ ˤ
줿 桼 פʤΤ fml4 Ǥ fml8 Ǥ ե λ ͤǤ
Ǥ פ ѹ fml4 ( config.ph ե ) Ǥ
$PERMIT_POST_FROM = "anyone";
Ȥ Ƥ ޤ fml8 ( config.cf) Ǥ
article_post_restrictions = reject_system_special_accounts
permit_anyone
reject
: fml8 2008/08/17 ʹߤΥС Ǥ isolate (SPAM γ ) 侩 Ǥ
article_post_restrictions = isolate_system_special_accounts
permit_anyone
isolate
Ȥʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Subject
ǥե Ǥϡ Subject Υ ʤ ס fml4 fml8 ͤǤ ơ fml4
Ǥ
$SUBJECT_TAG_TYPE = '[:]';
fml8
article_header_rewrite_rules += rewrite_article_subject_tag
article_subject_tag = [$ml_name:%05d]
Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Υ ޥ ʤ
members ޥ ʤɤ Ȥ ʤ פ fml8 Ǥϥǥե Ǥ fml4 ΰʲ Υ ޥ б
Τ פǤ
&DENY_PROCEDURE('member');
&DENY_PROCEDURE('active');
&DENY_PROCEDURE('members');
&DENY_PROCEDURE('actives');
&DENY_PROCEDURE('status');
&DENY_PROCEDURE('stat');
fml4 fml4 侩 ξ ֤Ǥϡ֥ե 륿 ϻȤ 褦 ˤʤäƤ ޤ fml8
Ǥϡ֥ե 륿 פ ǥե Ǥ
Τ ᡢ ˤ Ƥ /usr/local/etc/fml/site_default_config.cf ١֥ǥե
ǤϻȤ פ ξ 餿 ʲ 㳰 롼 Ŭ
fml4 Ȱۤʤꡢ subscribe, chaddr, unsubscribe confirmation ɬ ܤȤʤäƤ ޤ
confirmation 뤳 ȤϽ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: ֡ ȥץ ѹ
륳 ޥ (makefml mergeml) Ԥʤ ʲ ޤ ǹԤʤ ɬ Ϥ
ʤ 顢 ԤʤäƤ ȤˤĤ Ƥ aliases include ե
Ĥ Ƥ Ƥ ޤ
ޤ 륵 Ф fml4 fml8 ѹ ʤ ƤϤʤ в
ɤ 졢 ǽ Ū fml8 뤳 Ȥ Ǥ fml4 config.ph
ä Ϥʤ ʤ ͤ Ǥ
⤦ ܺ٤ʲ ޤ 礦 ̥ͣɥ饤 Фλ Ȥ Ф Ƥ
Ȥ Postfix Postfix aliases ե 뤫 include ե
Ȥ Τꡢ include ե 뤫 fml8 ε ư λ ǽ Ū Postfix /
usr/local/libexec/fml/distribute ޥ Ԥ ޤ
ư 줿 distribute ޥ config.cf ɤ߹ ߡ config.cf С ꥹ Ȥʤɤξ
Τꡢ ޤ ޤʽ Ԥʤ Ȥ ä ǥ֡ ȥ ȥ פ Ƥ s
Ĥޤꡢfml8 ư ޤǤ
aliases ե (MTA )
include ե
Σ Ĥ ʳ Ǥ
ơ aliases ե ˤˤ ̤ͣ ꤬ Ƥ ƤϤ ޤ /etc/
postfix/main.cf ˤϡ Τ褦 fml4 fml8 Ƥ ΤǤ
alias_maps = hash:/etc/mail/aliases
hash:/var/spool/ml/etc/aliases (fml4)
hash:/var/spool/ml/etc/mail/aliases (fml8)
fml4 fml8 aliases ե Ǥν ( ͣ e.g. elena ν ) Ϻ äƤϤʤ
θ
MTA -> fml4 aliases -> fml4 include -> fml4 (fml.pl)
ȤʤäƤ 뵯ư ν ֤Τ褦 ѹ Ǥ
MTA -> fml8 aliases -> fml8 include -> fml8
Τ
fml4 aliases ե 뤫 鳺
fml8 aliases ե
ɬ Ǥ
դ aliases ν ʤ Ʊ ƥ fml4 fml8 ¸ ߤ Ƥ ꤢ
Ʊ ̤ fml4 fml8 ¸ ߤ Ƥ ꤢ ºݤ Τϡ
Ť줫(MTA 鵯ư 褦 ˤʤäƤ ) Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 8. fml4 fml8
ϤǤϡ fml4 fml8 ˤĤ Ʋ ⤷ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 fml8 ΰ㤤:
fml4 vs fml8 sendmail vs postfix ޤ
λ 鸫 줬 Ȥ ȹͤ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 fml8 ΰ㤤: 饤
fml8 γ ȯ ݥꥷ ѤǤ Τϡ ʤ뤿 Ȥ ʤΤǡ
Ƥ ֥ Υ饤 錄 ȥ 饤 Ȥ ̤Υǥ 쥯
ȥ꤬ ޤ Τ ᡢ ȯ ڤ ưפǤ
fml4 ϡ ۤȤ Υ (.pl Τ ) ˽ ޤ Υ饤 GNU Public
License Ǥ jcode.pl 㳰 Ǥ ܤ jcode.pl ʬ Υ饤 Ȥ Ʋ
ޤ perl module (.pm) Ƥ ꡢ ĥ module/ β äƤ ޤ
β Υ饤 ϳƥ⥸ 塼 ¸ Ǥ ơ ĥ ξ Υե 뷲 ϴ
ޤ
fml8 Ǥϡ ĥ Υȥåץǥ 쥯 ȥ ץ Ȥ⤷ ϥ饤 Ȥ 櫓
ޤ Ȥ fml8 ˽줿 ɤ fml/ ʲ ˤ ꡢ 饤 Perl Ǥ Ʊ
cpan/ gnu/ ǥ 쥯 ȥ ̤ img/ BSD 饤 Ǥ
ܤ ϡ 줾 饤 ɤ
ǥ 쥯 ȥꤴ Ȥ 뤿 ᡢ Υ饤 Υ ɤ ӽ Ȥ ưפǤ
fml8 ϡ ȡ ˡ ٤Ƥȡ 뤹 뤿 ᡢ ȡ 뤷 Ǥϥ饤 ޤ
Τ Ʋ
饤 ꥢ ˤ ϡ ѹ ɬ Ǥ ɬ إ⥸ 塼 դ
ȡ Ѥ ƽв٤ Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 fml8 ΰ㤤: ޥ 顼
ޥ 顼 ä ֻ ݤˤϡ Accept-Language ʤɤͤ˸
ư Ԥʤ ޤ ܤ Chapter 37 Ȥ Ʋ
ե ݤδ ܷ MIME/Multipart Ǥ
fml4 ߷פ 줿 Unix Ǥ θ ͥåȤ Ÿ ϡ ޤ ޤ OS
о줵 Ƥ ޤ ͥåȤ ǽ 㤤 ˹ ޤ 4 5
餤 Ȥϻפ ޤ ɸ ಽ MIME/Multipart ʳ ɤ
ץ桼 ³ Ф 礦
桼 졼 б Τۤ ô Ȥ ޤ fml4 ˤ ä tar.gz zip ʤɤ
Ϥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 fml8 ΰ㤤: ޥ 饤 (makefml)
makefml ȥ å ΰۤʤ fml Ȥ ޥ
makefml ޥ ͣ ץ
fml ͣ ޥ ץ
㤤 ϰ ν ֤Ǥ ͣ ȥ ޥ ν ֤ 㤦 ǡ ¹Ԥ ϡ ޤä Ǥ
ư λ ۤʤ fml8 Τۤ Unix Ū Ǥ fml4 Υ ޥ ϡ ʤ
ͻҤ Ǹ ˤʤäƤ ޤ դˡ fml8 Υ ޥ ϡ
Ǥ ޤ [8] Τۤ Unix Ȥ Ȥȡ ɬ
ݤ ե ϸ¤ ᡢ ʬ ɽ Ǥ ǤϤʤ
makefml Ԥ ƥ ޥ ϰʲ ̤
Table 8-1. fml4 fml8 ΰ㤤: CUI (makefml ⤷ fml ޥ )
┌──────────────────┬────────────────────────┬─────────────────────────────────┐
│ │ fml4 │ fml8 │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml help ML ⤷ │ │
│ │makefml info ML Ԥ │ │
│ إ │ إ ɽ ɤ│̤ │
│ │ ư ɽ κݤˡ │ │
│ │Ķ PAGER ꤵ │ │
│ │ Ȥ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │ ȥåץǥ 쥯 ȥ make │ ȥåץǥ 쥯 ȥ configure │
│fml Υ ȡ │install ( Τ makefml │make install ( Τ install.pl │
│ │install) Ԥ │ ) │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ȡ 륹 Ȥε│ ˡ ǥե ǽ │ ˡ ǤϤʤ ǽ ܤ configure│
│ │ ܤ ꤬ │ ץ ǻ ꤹ 롣 │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ̤ͣκ │makefml newml ML ⤷ │makefml newml ML │
│ │makefml new ML │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│newml ޥ │sendmail ( ߴ │postfix, sendmail, qmail, │
│ ꥢ ( ) ե │뤿 postfix Ȥ Ƥ │procmail ٤Ƥ │
│ │ ) │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│newml ޥ │/var/spool/ml/etc/ │ │
│ ꥢ ( ) ե │aliases │/var/spool/ml/etc/mail/aliases │
│ ѥ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│qmail │makefml qmail-setup ML │ ( ǥե Ǻ ) │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│aliaes │makefml │ ΤϤʤ │
│ │recollect-aliases ML │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ML κ │makefml destructml ML │makefml rmml ML │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ 顼 뼫ư ϥġ │makefml mead ML Ԥ │ │
│ │ ꥢ │ ǥե ꤵ │
│ │ 롣 │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│fml Υƥ ȤƤߤ │makefml test ML │̤ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│LISTSERV │makefml fmlserv ML │ │
│ ޥ Υ åȥ åס│listserv majordomo Ǥ │̤ │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │ │makefml subscribe ML ADDRESS ʤ │
│ │makefml add ML ADDRESS │add subscribe adduser useradd │
│ │⤷ adduser Ǥ │ޥ Ǥ 롣 顼 ˤʤ│
│ ɥ쥹 ( ԡ │ λ 塢 ե ɽ│ ¤ꡢ Ϥʤ ˽ 롣 │
│ԥꥹ ) ä │ ǥե │ ǥե ݤ │
│ │ ݤ actives │$primary_recipient_maps │
│ │members ե 롣 │$primary_member_maps ǡ ˤ│
│ │ │ recipients members ե 롣 │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │ │makefml unsubscribe ML ADDRESS ʤ│
│ │makefml bye ML ADDRESS │ bye unsubscribe deluser remove │
│ │⤷ byeuser Ǥ │resign signoff userdel ޥ │
│ ɥ쥹 ( ԡ │ λ 塢 ե ɽ│ Ǥ 롣 顼 ˤʤ │
│ԥꥹ ) │ ǥե │¤ꡢ Ϥʤ ˽ 롣 ǥե │
│ │ ݤ actives │ ݤ │
│ │members ե 롣 │$primary_recipient_maps │
│ │ │$primary_member_maps ǡ ˤ│
│ │ │ recipients members ե 롣 │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml chaddr ML │makefml chaddr ML OLD_ADDRESS │
│ ɥ쥹 ѹ ( │OLD_ADDRESS NEW_ADDRESS │NEW_ADDRESS 顼 ˤʤ ¤ꡢ │
│ԥꥹ ȡ С ꥹ ȤȤ│ λ 塢 ե ɽ│ Ϥʤ ˽ 롣 ǥե │
│ ) │ ǥե │ ݤ $primary_recipient_maps │
│ │ ݤ actives │$primary_member_maps ǡ ˤ│
│ │members ե 롣 │ recipients members ե 롣 │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml addactives ML │ │
│ │ADDRESS addactive│makefml addactives ML ADDRESS │
│ ԥꥹ ȤˤΤߥ ɥ쥹 │add2active add2actives │顼 ˤʤ ¤ꡢ Ϥʤ ˽│
│ɲä 롣 │Ǥ λ 塢 ե │ 롣 ǥե ݤ │
│ │ ɽ │$primary_recipient_maps ǡ │
│ │ ǥե ݤ │ ˤ recipients ե 롣 │
│ │actives ե 롣 │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml addmembers ML │makefml addmembers ML ADDRESS │
│ │ADDRESS addmember│顼 ˤʤ ¤ꡢ Ϥʤ ˽│
│ С ꥹ ȤˤΤߥ ɥ │add2member add2members │ 롣 ǥե ݤ │
│쥹 ɲä 롣 │Ǥ λ 塢 ե │$primary_recipient_maps │
│ │ ɽ ǥե │$primary_member_maps ǡ ˤ│
│ │ ݤ members │ recipients members ե 롣 │
│ │ ե 롣 │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml off ML ADDRESS │ │
│ ꥢ 륿 ߤ │ skip Ǥ λ│makefml off ML ADDRESS 顼 ˤʤ │
│ │ 塢 ե ɽ │ ¤ꡢ Ϥʤ ˽ 롣 │
│ │ ǥե │ │
│ │ ݤ actives ե 롣 │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml on ML ADDRESS │makefml digestoff ML ADDRESS ⤷ │
│ ꥢ 륿 Ƴ │λ 塢 ե ɽ │ makefml digest ML ADDRESS off │
│ │ ǥե │ 顼 ˤʤ ¤ꡢ Ϥʤ │
│ │ ݤ actives ե 롣 │ ˽ 롣 │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml matome ML │ │
│ │ADDRESS ޥ digest│makefml digeston ML ADDRESS ⤷ │
│ ޤȤᤪ │ Ǥ λ 塢 ե │ makefml digest ML ADDRESS on │
│ │ ɽ ǥե│ 顼 ˤʤ ¤ꡢ Ϥʤ │
│ │ ݤ actives│˽ 롣 │
│ │ ե 롣 │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml addadmin ML │makefml addadmin ML ADDRESS 顼│
│ ȴ ɲä│ADDRESS λ 塢 ե │ ˤʤ ¤ꡢ Ϥʤ ˽ │
│ 롣 │ ɽ ǥե │롣 ǥե ݤ │
│ │ ݤ │recipients-admin members-admin│
│ │members-admin ե 롣 │ ե 롣 │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml byeadmin ML │makefml byeadmin ML ADDRESS 顼│
│ ȴ │ADDRESS λ 塢 ե │ ˤʤ ¤ꡢ Ϥʤ ˽ │
│ │ ɽ ǥե │롣 ǥե ݤ │
│ │ ݤ │recipients-admin members-admin│
│ │members-admin ե 롣 │ ե 롣 │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ȴ Υѥ │makefml passwd ML ⡼│makefml passwd ML ϥ 顼 ˤʤ롣(̤ │
│ ɤ ꤹ (1) │ ɤˤʤꡢ ɥ쥹 ȥѥ ɤ │ ?) │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ȴ Υѥ │makefml passwd ML │makefml passwd ML ADDRESS │
│ ɤ ꤹ (2) │ADDRESS ⡼ ɤˤʤꡢ ѥ │PASSWORD ʤ ϡ │
│ │ ɤ │⡼ ɤˤʤꡢ ѥ ɤ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml passwd ML │makefml passwd ML ADDRESS │
│ ȴ Υѥ │ADDRESS PASSWORD │PASSWORD 顼 ˤʤ ¤ꡢ │
│ ɤ ꤹ (3) │ Ҥ ɽ ǥե │ Ϥʤ ˽ 롣 ǥե │
│ │ ݤ etc/passwd │ ݤ etc/passwd-admin ե 롣 │
│ │ե 롣 │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ 塼 │makefml config ML │ Ƥ 뤬 ޤ ü │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml edit ML Ȥ ǥ │makefml edit ML ǥ │
│ │ Υ ǥ│config.cf Խ Ǥ ˤ 롣 Ȥ│
│ ե │ config.ph Խ Ǥ │ ǥ ͤ ʤ Ķ │
│ │ ˤ 롣 ǥ Υǥե│ EDITOR │
│ │ vi │ ͤ Ȥ 롣 ǥ Υǥե vi│
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml update-config ML│ │
│fml4 │ update │ │
│ Ѵ ( cf │config-update │ ե config.cf ʤ │
│config.ph │update-config.ph ޥ │ ᳺ ס │
│ ) │ Ǥ Ҥ ɽ │ │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ 塼 cf │makefml config-template │ │
│ Υƥ 졼 ȥե │ML │̤ │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│newml κݤ˻Ȥ │makefml edit-template │ │
│ 졼 ȥե │FILE ʤ FILE ʤ Ǽ¹Ԥ │̤ │
│ │ ǽ ʥե │ │
│ │ ɽ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ̤ͣΥۡ 쥯 ȥ │makefml │ ¸ ߤ ʤ ⤷ │
│ ʤɤΥե │create-doc-template ML │顢 Ĥ ä ֤ ΤϤ│
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ SRC ե │ │ │
│ DST ء ե │makefml conv ML SRC DST │̤ │
│ Ĥ │ │ │
│ 롣 │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ 롣 ǥե │makefml log ML [ ץ │ │
│ ǤϺǸ 100 Ԥ ɽ │ ] makefml tail │makefml log ML ץ │
│ │ML Ǥ ư ʤ롣 │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│admin.cgi Υ åȥ │makefml admin.cgi ML │Ⱦʬ̤ ʬ ( Ȥ │
│å ( │ Ū ˹Ԥʤ 롣 │makefml newml ˼ ưŪ ˺ ) │
│ apache )│ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ml-admin.cgi Υ │makefml ml-admin.cgi ML │ │
│åȥ å ( │makefml mladmin.cgi ML │Ⱦʬ̤ ʬ ( Ȥ │
│ apache │Ǥ Ū ˹Ԥʤ 롣│makefml newml ˼ ưŪ ˺ ) │
│ ) │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│admin.cgi │makefml │̤ │
│.htpasswd ꤹ │html_cgiadmin_passwd ML │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ │makefml html_config ML │ │
│ │ Υ ޥ │ │
│html_config │html_config_set Ǥ │̤ │
│ │ CGI │ │
│ │ ˻Ȥ Ƥ ѥ ޥ │ │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ȴ Υѥ │ │ │
│ ɤ ꤷ │ │ │
│ml-admin.cgi │makefml html_passwd ML │̤ │
│.htpasswd ( │ │ │
│ ȴ ѥ ɤ │ │ │
│ Τ ) │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ml-admin.cgi │makefml htpasswd ML │̤ │
│.htpasswd ꤹ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│pgp ޥ │makefml pgp ML │̤ │
│WRAPPER │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│pgp2 ޥ │makefml pgp2 ML │̤ │
│WRAPPER │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│pgpe ޥ │makefml pgpe ML │̤ │
│WRAPPER │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│pgpk ޥ │makefml pgpk ML │̤ │
│WRAPPER │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│pgps ޥ │makefml pgps ML │̤ │
│WRAPPER │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│pgpv ޥ │makefml pgpv ML │̤ │
│WRAPPER │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│gpg ޥ │makefml gpg ML │̤ │
│WRAPPER │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│admin-auth (PGP, │ │ │
│GPG KEY RING │makefml admin-auth ML │̤ │
│ ) │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│admin-encrypt │ │ │
│(PGP, GPG KEY RING│makefml admin-encrypt ML│̤ │
│ ) │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│dist-auth (PGP, │ │ │
│GPG KEY RING │makefml dist-auth ML │̤ │
│ ) │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│dist-encrypt (PGP,│ │ │
│GPG KEY RING │makefml dist-encrypt ML │̤ │
│ ) │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│popfml (POP MTA │ │ │
│ ML ߥ │makefml popfml │ ⤽ popfml ̤ │
│ fml) Υ åȥ │ │ │
│åפ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│POP Υѥ ɤ ꤹ │makefml pop_passwd │ ⤽ popfml ̤ │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ̤ͣ │makefml lock ML │ Τ ʤ ⤽ giant │
│ │ │lock ʤ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ Х Ȥ Խ ƥ │makefml │ │
│ 졼 Ȥ │bug-report-template ML │̤ │
│ │send-pr Ǥ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ޥ μ¹ │makefml command ML │̤ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ⡼ ɤ │makefml delivery_mode ML│̤ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│makefml ѿ │makefml setq ML │ Τ ʤ │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│fml ư Ƥ │makefml showconfig ML │ │
│ ˤĤ ƥ ޥ ɽ │showconf Ǥ │̤ / ʤ │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ show ޥ ץ │ │ │
│ OS ɽ│makefml show ޥ │̤ / ʤ │
│ │ │ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│ ե │makefml resend ML │̤ / ʤ │
├──────────────────┼────────────────────────┼─────────────────────────────────┤
│upgrade ޥ : │ │ │
│fml 2.0 3.0 │makefml upgrade ML │ │
│ؤΥ │ │ │
└──────────────────┴────────────────────────┴─────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 fml8 ΰ㤤: GUI (CGI)
fml4 ξ ȡ ˡ 餿 GUI Ȥ .cgi Ȥ apache Υ
åȥ åפ
fml8 Ǥϡ newml ¹Ի ˡ GUI Υ Ȥ⼫ưŪ
Ǥ ºݤ WWW ե ݤˤ apache ѹ ɬ ǡ fml4
Ȱ Ǥ ޤˡ ͥåȤ 龡 GUI Ǥ ˤʤäƤ 顢 Ӥä
ꤹ 礦 顢 Ǥ
ե ϡ ʤꤢ fml4 ϡ ʥ٥ ٥ ʺ Ǥ fml8
ϥơ ֥ Τ ˤʤäƤ ޤ Ƥ (w) ϡ ߤʤ ǥ
֥ ե ϼ פ ޤ ޤǤ⡢ ˲ ֤Ȥ [9]
˻פäƤ ȡ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե Υ롼
ե ̾ 롼 Ĥ Ƥ Chapter 16 Ȥ Ʋ
fml4 fml8 ˰ܹԤ ˤϡ ư ġ 뤬 äơ ե ѹ Ϥ
ˤʤäƤ ޤ Ȥ Ѵ 뤳 Ȥϡ ޤ ʤ Ȥ ⤤ ޤ ʲ fml4 fml8 Υե
롼 ʬ ٤ޤ ̤ͣΥǥ 쥯 ȥ깽 Ω ĤȻפ ޤ
Ԥȥ С ꥹ Ȥ ̡ ˴ Ȥ ˤ Ѥ ޤ ե ϰۤʤ
ե ϴ ˡ֥١ Ȥʤ - Ǥ 䤬 ǥե Ρ ʤ פǤ
ĤǤ
actives recipients Ȥʤꡢ ե ˤʤ members Ϥ
ΤޤޤǤ
members-admin ϡ ΤޤޤǤ Ū recipients-admin ե
ޤϻȤ ƤϤ ޤ
etc/passwd etc/passwd-admin ˤʤꡢ ե ޥåȤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 9. fml8 Υ åץ 졼 / 졼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ ϤǤ fml8 åץ 졼 / 졼 ɤ ˤĤ Ʋ ⤷ ޤ │
│ │
│fml4 fml8 ؤΥ åץ 졼 ɤϡ Chapter 7 ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Υ åץ 졼
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│main.cf Ѥ ѹ Ϥ åץ 졼 ɤ ͭ ʤ │
│ │
│fml8 ϡ С Ȥ˰ۤʤ 쥯 ȥ ȡ 뤵 ɤΥС Ѥ 뤫 │
│ main.cf fml_version │
│ │
│ Ĥޤꡢ ( åץ 졼 ) ȡ 뤹 Ǥϲ Ѳ ϵ │
└─────────────────────────────────────────────────────────────────────────────┘
ޤ åץ 졼 ɤ С fml8 ȡ Ʋ
ơ ȡ /usr/local/etc/fml/main.cf fml_version Ԥ ȡ 뤷
С ѹ Ʋ ե ֤ ִ֤ 鿷 fml8 ڤ ؤ ޤ ( :
ǥ Խ ϸŤ )
դ˸ fml_version Ԥ Խ ǥ åץ 졼 ɤ Ϥʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Υ 졼
Υ ȡ 뤷ľ ʤɤ /usr/local/etc/fml/main.cf Խ Ǥ
/usr/local/etc/fml/main.cf fml_verison åץ 졼 Τ ᤷ Ʋ
ե ֤ ִ֤˸Ť ( Ĥƥ ȡ 뤷 Ǥ դΥС ) fml ڤ ؤ ޤ ( : ǥ
Խ ϸŤ )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 10. CGI
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│CGI ˤĤ Ƥ the Section called å in Chapter 42 Ȥ Ʋ │
│ │
│ ǥե fml8 Ǥϡ apache suexec Ȥ Ȥ Ƥ ޤ Ĥޤ │
│ │
│ │
│http://mail.example.org/~fml/cgi-bin/fml/DOMAIN/admin/config.cgi │
│http://mail.example.org/~fml/cgi-bin/fml/DOMAIN/ml-admin/ML/config.cgi │
│ │
│ Ȥ ä URL Ǥ │
└─────────────────────────────────────────────────────────────────────────────┘
̤ͣ Ȥδ CGI ɥᥤ CGI ̥桼 subscribe/unsubscribe
ꥯ Ȥ Ƥ CGI ( 2008/09/09 ʹ ) Σ ब դ ޤ
CGI ե Ǥϡ 桼 ɲá С ꥹ Ȥ α ɤ Ǥ
ޤΤȤ CGI ե ( ե config.cf Խ ǽ)
Ⱦü Ǥ
CGI פʥ ޥ ϡ ٤ CUI ޤ Ȥ С ̤ͣκ
ޥ 饤 Ʊ Τǡ CGI ̤ʺ פǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
makefml newml ϡ Ĥͤ CGI Ȥ
makefml newml ML (fml ML newml) Ԥ ~fml/public_html/ ʲ CGI
Ȥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ Ĥͤ CGI ȤϺ apache Υǥե Ǥ ~fml/ ʲ ϸ │
│ ޤ │
│ │
│ ( ¤ 줿) ˤ fml8 ǥե Ǥ CGI ̵ ȸ äƤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
CGI ҤΤ褦 ˣ ढ Ѥ ˤ ֥ɥᥤ CGI ȡ
֤ 줾 ̤ͣ Ѥ CGI ꡢ 줾 졢 Υѥ ˺
Υɥᥤ δ ( Υɥᥤ ٤ƤΣ̤ͣ )
~fml/public_html/cgi-bin/fml/ ɥᥤ /admin/config.cgi
̤ͣ Ȥδ ( Σ̤ͣΤߤ )
~fml/public_html/cgi-bin/fml/ ɥᥤ /ml-admin/ ͣ /config.cgi
桼 CGI ( ̤ͣ 塼 ) ϡ WWW Ф ե
륿 䤹 褦 ˡ 虜 Ȱۤʤ ˺ Ƥ ޤ
~fml/public_html/cgi-bin/anonymous/ ɥᥤ / ͣ /submit.cgi
ɬ ˱ WWW Ф ~fml/public_html/cgi-bin/fml/ ~fml/
public_html/cgi-bin/anonymous/ ǰۤʤ륢 ԤʤäƲ
Ȥ С elena@fml.org ̤ͣ Σ Ĥ
fml.org ̤ͣ CGI
http://lists.fml.org/~fml/cgi-bin/fml/ ɥᥤ /admin/config.cgi
http://lists.fml.org/~fml/cgi-bin/fml/fml.org/admin/config.cgi
elena@fml.org ML CGI
http://lists.fml.org/~fml/cgi-bin/fml/ ɥᥤ /ml-admin/ ͣ /config.cgi
http://lists.fml.org/~fml/cgi-bin/fml/fml.org/ml-admin/elena/config.cgi
elena@fml.org ̤ͣؤ CGI
http://lists.fml.org/~fml/cgi-bin/anonymous/ ɥᥤ /submit.cgi
http://lists.fml.org/~fml/cgi-bin/anonymous/fml.org/elena/submit.cgi
[cgi]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǧ : ɤ 褤 ΤǤ
WWW Ф ڥ ƥ ˤ ä Ǥ
Ȥ Ƥ⡢ ⤦ fml8 Ǥ WWW 뤬 Ǥ 礦 ͡
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǧ : .htaccess Խ
ǥե Ǥϡ Ȥꤢ Ƥ (ǧ ڥ 顼 ˤʤ ) Τǡ Ŭ ѹ Ʋ
ǥե Ǥϡ CGI Υ ˥ɥᥤ ̤ .htaccess
http://lists.fml.org/~fml/cgi-bin/fml/ ɥᥤ /.htaccess
http://lists.fml.org/~fml/cgi-bin/fml/fml.org/.htaccess
ǥե .htaccess ϼ Τ褦 :) ʤ ˤʤäƤ ơ Ǥ ޤ ( 顼 ˤʤ
) [10]
AuthName ByPassword
AuthType Basic
require valid-user
.htaccess ʤ ˽ apache suexec Ʋ
AuthName ByPassword
AuthType Basic
AuthUserConfig "/usr/local/etc/fml/ ɥᥤ /htpasswd"
require valid-user
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│( Ǥ ) .htaccess ե ä ȡ ï Ǥ⥢ Ǥ ˤʤ │
│ǥХå Ǥ ϻȤ 褦 ˤ ޤ 礦;-) ޤ ֥ǥХå│
│ 顢 Ȥ ġפȤ ˤ äơ Τޤ ꤷ˺ 줿 ꤹ ΤʤΤǡ │
│ ή ˴ 褦 ˤ Ƥ .htaccess ꤷ ޤ 礦 │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI : ɥᥤ CGI β
CGI ϡ ᥤ Ǥ 븢 ¤ Ƥ ޤ ֣̤ͣ 븢 ¤ Ƥ ɤ
Ǥ Unix Υ ޥ 饤 Ȥ Τ ȤĤ餤 Ȥ ͤ ꤷ Ǥ
ơ ̤ͣκ ʤɤ Ǥ Ǥ makefml Τ ٤Ƥε ǽ Ȥ Ǥ⤢
CGI β ̤ 狼 ̤ꡢ CGI Dz ʹ ܤ makefml ʤäƤ ޤ ʥ
ޥ Ϻǽ ̤˥إ Ȥ Τ Ǥ
: CGI ȥåײ
@home.fml.org CGI for configuration
fml admin menu fml CGI interface for @home.fml.org ML's
mailing list:
[elena] Υʥӥ С 顢 ͣ (mailing list) ȥ
command: (command) submit ܥ Ʋ
[subscribe ]
[submit][reset]
subscribe ɥ쥹 ɲ
unsubscribe ɥ쥹 κ
addadmin ȴ ɥ쥹 ɲ
byeadmin ȴ ɥ쥹 κ
options Language: list ɥ쥹 ꥹ Ȥ
[Japanese] [change] log
newml ̤ͣκ
rmml ̤ͣκ
ʤ ̤κ ⤷ ϱ ˥إ ɽ Τ ݤˤϡ ͤˤ Ʋ
ޥ Ȥ˥ ϰۤʤ :)
[cgi]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI λȤ : : ̤ͣκ
β ̤Υ ޥ newml submit ܥ Ʋ ML ̾
Ϥ :)
ͣ ʤ ̤ Τǡ submit
ܥ Ʋ
[cgi]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI λȤ : : С Ͽ
β ̤Υ ޥ ML ̾ subscribe submit ܥ Ʋ
ɥ쥹 ʤ ̤ Τǡ Ͽ ɥ쥹
submit ܥ Ʋ
[cgi]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI
config.cgi Ǥ TABLE SELECT ܤǤ ⤦ β ̤ˤ ʤ顢menu.cgi Τۤ
äƤߤƲ
Υɥᥤ ͣ δ
~fml/public_html/fml/ ɥᥤ /admin/menu.cgi
̤ͣ Ȥδ
~fml/public_html/fml/ ɥᥤ /ml-admin/menu.cgi
TODO: cookie Ф Ƥ 褦 ˤ 褦 ȹͤ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̥桼 CGI
fml8 ä ̤ͣؤ / (subscribe/unsubscribe) ϡ Υ ƥ
Ǥ
Υ ޥ / (subscribe/unsubscribe) κǽ ե CGI Ǥ
ˤ ޤ
CGI / ȥ ƥ Ǥ ʤ Τǡ
(1) ǽ CGI 鿽
(2) confirmation
(3) confirmation äƤ OK
Ȥ Ƥ ޤ ( HTTP ä ٤ʤ ˤ ⤢ )
Τ ȤϤʤ ǽ Ȥ subscribe Ȥ Ф Ʋ ֤ CGI ǥ
륢 ɥ쥹 Ʋ Ѥ Ǥ ͡
ʤ CGI ˤϡ SPAM 褱 Ρɤ ޤ ʤ ɤȤ ơ 륢 ɥ쥹 ĤåȤ
Ƥ 褦 ˤ Ƥ ֤椬 ʸ ǧ Ǥ ϵ ǤϤʤ ʹ֤˰㤤 ʤ
(image verification) Ǥ
ޡ ٤ ɤ͡ ɤ Τ ȥ confirmation ⤢ ǡ Τ ޤ ʤ
ϵ ˤ ʤ Ǥ
礻 CGI ʤɡ confirmation ƥ wrapper ˤ ʤ Ȥ դ
Ǥ CGI ñ Ǥ ޤ Τ ᡢ ̥桼 CGI ϡ ٤ƤΤ image
verification ǿ Ƥ 褦 ˤ ơ ѥ ڤʤɤȤ ä ʥ ƥ Ƥ
ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: ̥桼 ѥ ڤϡ ɤ ʤΤ
桼 ˥ѥ ɤ 줵 ̥ ƥ ѥ ɤ Ƥ ᤷ
ͤϴ Ǥ
̥桼 ̴ͣ 뤳 ȤϿ ǯ ˰ 顢 ѥ ɤ ꤷ Ƥ⼡
dzФ Ƥ 뤳 Ȥ ʤ ΤǤ
ޤ ä ƥ ϡ ѥ ɤ 줿 ˺ ꤹ ʿʸ ѥ ɤ
Ƥ ꤹ Ǥ ʬ ѥ ɤȤ ɡ Ƥ Ŀ; ˤ Ϣ ä
ꤷ ޤ ѥ ɤ ʿʸ Ǥ Ȥꤵ Τ Ǵ Ȥ ʤ Υ ƥ
δ
Ĥ 褦 ʥ ƥ [11] Ǥʤ ꡢ ѥ ϥ ƥ ۡ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 11. apache
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fml8 CGI ˤĤ Ƥ the Section called å in Chapter 42 Ȥ Ʋ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
apache suexec
suexec ǽ Ѳ apache configure Ԥ ˡ
(apache 1.x ξ )
# ./configure --enable-suexec --suexec-caller=www (... Υ ץ ...)
ʤɤȤ ޤ
Important: suexec ӽФ Ȥ ʥ桼 www Ǥ CGI 桼
ˤϡ CGI Υ桼 Ѱդ Ʋ
suexec ӽФ Ȥ ʥ桼 www Ǥ CGI 桼 ˤϡ CGI Υ桼
Ѱդ Ʋ
ȡ ~ 桼 /cgi-bin/ 褦 httpd.conf
(Apache 2.2 ޤ ):
AllowOverride FileInfo AuthConfig Limit
Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
Order allow,deny
Allow from Υۥ
... ά ...
AddHandler cgi-script .cgi
... ά ...
Apache 2.4 ʹߤϡ
Order allow,deny
Allow from Υۥ
ΤȤ
Require ...
Ȥ Ѥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 12. ƥ
ƥ Ȥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│newml κݤΥ桼 å 뤿 ᡢ ƥ Ȥ Postfix aliases ( 桼 │
│root postmaster ʤ ) Ʋ ʤ root ̤ͣȤ │
│ Ƥ ޤ ޤ ;-) │
│ │
│qmail 륵 Ф˻ȤäƤ äˤ ȤϤʤ Ȥ ⤤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
ʲ Ǥϡ fml8 MTA ư Ƥ (ahodori.fml.org) 륵 ФȸƤӤޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
륵 м Υƥ Ȥ
̤ͣ Ȥ ˡ 륵 ( Ǥ ahodori.fml.org Ȥ ) ư Ƥ
뤳 Ȥ ǧ Ʋ
ޤ 륵 Ф˸ĿͰ Υ 륢 ɥ쥹 Ѱդ ޤ 礦 Ǥϡ 桼 ֤ פ rudo@fml.org
Ȥ [12]
Υۥ Ⱦ rudo 뤬 Ʋ Ĥޤ ahodori ξ
rudo@fml.org إ Ф Ƥ
% echo test |Mail rudo@fml.org
⤷ Ȥ ʤ顢 ⤽ Postfix ꤬ ְ Ƥ ޤ
ˡ 륵 аʳ Υۥ Ȥ rudo@fml.org إ 뤬 ( ã ) ǧ Ʋ
Ĥޤꡢ 륵 аʳ Υۥ Ȥ rudo@fml.org Ф Ǥ Ƥ 뤫 ǧ
Ƥ ⤷ Ȥ ʤ顢 ⤽ Postfix ꤬ ְ Ƥ ޤ
ʤ Ȥ⡢
(1) 뤬 Ǥ ( )
(2) Ȥ 뤬 Ǥ ( )
Υѥ Postfix δ ꤬ Ȥ 礦 Postfix δ ꤬
Ǥ ̤Υƥ Ȥ˿ʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣؤ ƥ
elena ML ( Ǥ elena@fml.org) rudo@fml.org Ʋ
% su fml
% makefml newml elena
% makefml add elena rudo@fml.org
ˡ ۥ ȳ ۥ Ⱦ夫 顢 줾 elena@fml.org إƥ ȥ Ф ƤߤƲ
λ ƥ ȥ From: rudo@fml.org ˤʤäƤ ʤ SPAM Ĥ
С ʳ դ ʤ դ Ʋ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│SPAM Ǥ 2008/08/03 ʹߤ fml8 Ǥ ֥ isolated │
│ פΤ ǥե Ǥ fml8 Ǥϡ Ԥ ֤ ʤ ϣ̤ͣΥ С ǤϤʤ Τ│
│ ϵ ݤ 줿 ȥ 뤬 ޤ │
│ │
│SPAM ¿ Τǡֳ פ ǥե ѹ Ƥ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⤷ ޤ ʤ ϰʲ Τ褦 ʹ ܤ ǧ Ʋ
륵 ФΥ ǧ
fml Υ ˥ 顼 ʤ
fml ϥ 륵 Ф ( ) Ϥ
륵 Ф
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Υƥ
fml4 ˤ makefml test Ȥ ޥ fml8 ˤϡ ΤȤ
ΤϤ
ʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ƥ Ȥ פ ML κƽ
ƥ Ȥη פ ˤϡ ̤ͣ ƺ ľ Ǥ
% su fml
% makefml rmml test
% makefml newml test
ƥ Ȥ ̤ͣΥۡ 쥯 ȥ /var/spool/ml/@test. ˻ĤäƤ ޤ ƥ
ȤǻȤä Ǥ Τǡ ä Ƥ⤫ ޤ ޤ
% su fml
% rm -fr /var/spool/ml/@test.
III. fml Υ ޥ
ȥԥå Ȥˡ ޥ ʤɤ Ȥ ޤ
Table of Contents
13. ̤ͣΥ С Ǥ 뤳
14. ̥ͣ о ޥ ( ̴ͣ ) Ǥ 뤳
15. ե
16. [fml8 Ǥ ] ե ˤĤ
17. ޥ λ
18. إå ν
19. ʸ ν
20. ޥ γ
21. ե 륿
22. γ
23. WWW ǣ̤ͣε
24. ̤ͣ äζ ( ) (Thread Tracking System ?)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 13. ̤ͣΥ С Ǥ 뤳
ɤ
elena@fml.org ̤ͣξ ʸ guide Ƚ elena-ctl@fml.org Ʋ
ɤ
guide Ȥ ̾ Υե 뤬 ̤ͣΥۡ 쥯 ȥ Υե ֤ ޤ ʤ
ʥǥե ˤϡ ƥ 졼 Ȥ guide ե 뤬 ֤
: ƥ 졼 ȤΤޤޤǤϡ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣ˻ ä
elena@fml.org ̤ͣ˻ ä ʸ
subscribe ̾
subscribe Teresa Testarossa
Ƚ elena-ctl@fml.org Ʋ
confirmation confirmation Ͽ
ʤ fml4 Ǥ subscribe 餷 ʤ ʤ ȤˤʤäƤ ޤ
fml8 Ǥ פǤ Ƥ ä Ȥ Ƥ⡢ fml8 ǤϤ ˤ äƤޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
( ˤĤ )
elena@fml.org ͣ (fml.org elena ͣ ) ؤ ϡ ˥ elena@fml.org
뤳 ȤǤ
MTA ǽ Ū MTA /usr/local/libexec/fml/distribute Ȥ ޥ
Ԥ ޤ distribute ϥ ɸ Ȥꡢ ̤ͣȤ ʽ ( ¸ å
ν ) 塢 MTA ͤޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
distribute ץ ̤ͣȤ ƽ ٤
• subject Υ 롢 ⤷ ϵ ֹ ɤ
Subject: [elena:00100]
( ǥե ǤϤĤ ޤ )
• ¸( ƥ ȥե )
• HTML 줿 ~fml/public_html/ ʲ ˺
• ץ ƥ ǡ ١ 롣
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ƶ 椹 ѿ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ ޤ ޤ Ƥ ޤ (_o_) │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: ֡ Ȥ Ƥ
fml ֡ ȥ ξϤǤ 夲 Ƥ ˡ Τ褦 ˥֡ Ȥ ޤ
/usr/local/libexec/fml/distribute /usr/local/libexec/fml/loader symlink(2)
Ƿ 졢Ʊ ե /usr/local/libexec/fml/distribute ư ȡ Ĥޤ
loader ư ȡ /usr/local/libexec/fml/loader /usr/local/etc/fml/
main.cf ɤߤ ߤޤ fml_version ٤ 饤 ֥ ΥС ޤ
Ȥ fml_vesrion current-20010501 ȤʤäƤ /usr/local/lib/fml/
current-20010501/ ʲ ˤ ֥ Ȥ Ǥ
@INC (Perl Υ饤 ֥ ѥ ) ꤷ 塢 loader (/usr/local/libexec/fml/
distribute μ ) FML::Process::Switch ɤ $0 ( ץ ̾) ٤ޤ
鼫ʬ λŻ פ Τ
loader /usr/local/etc/fml/defaults/ С /modules ե Ĵ ١ ɤ
⥸ 塼 뤬 FML::Process::Distribute Τ Ǹ Υ 饹 ɤ
ܤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣΥإ : ̤ͣλȤ Τꤿ
elena@fml.org ̤ͣξ ʸ
help
Ƚ elena-ctl@fml.org Ʋ إ ֤
help Ȥ ̾ Υե 뤬 ̤ͣΥۡ 쥯 ȥ Υե ֤ ޤ ʤ
ʥǥե ˤϡ ƥ 졼 Ȥ help ե 뤬 ֤
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ε
elena@fml.org ̤ͣξ ʸ
get ֹ
Ƚ elena-ctl@fml.org Ʋ ᤷ ( ) ϰ mime/
multipart
ֹ ʬ Ǥ MH ν ƹ ޤ
get 100
get 1-100
get first:3
get last:3
get 1-100,first:3,last:3
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
륢 ɥ쥹 ѹ
elena@fml.org ̤ͣξ ʸ
chaddr 쥢 ɥ쥹 ɥ쥹
Ƚ elena-ctl@fml.org Ʋ
쿷 ɤ ɥ쥹 Ƥ⤫ ޤ ޤ
ξ Υ ɥ쥹 confirmation confirmation
ͤǤ Ȥ С ºݤ˥ ɥ쥹
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣ
elena@fml.org ̤ͣ ʸ
unsubscribe ̾
Ƚ elena-ctl@fml.org Ʋ
Υ confirmation confirmation Ⱥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ (fml )
fml ˥ ʸ ( ޥ ) ळ Ȥǡ fml Ƥ Ȥ Ǥ ޤ
Ȥ С С ä
Important: fml δ ʻȤ CUI (makefml ⤷ fml ޥ ) ä
makefml Ȥϡ Ǥˣ̥ͣ ФΥۥ ȤΥ 뤬 Ƥ 뤳 Ȥ ̣ ޤ Ĥޤ
SSH (Secure Shell) ʤ Υۥ Ȥ ¤ ǡ Υ Фδ Ǥ
ǧ ںѤߤǤ ơ Ǥˡ֣̤ͣδ פȤ ø Ū Ȥ ޤ
ޥ ɤǡְ ̥桼 뵡ǽ פˤϡ ¤ Ǥ ºݡ
桼 륳 ޥ makefml Dz Τ Ĥޤꡢ
ޥ makefml Υ ޥ ΰ Ȥ ʤ Ŭ confirmation դ ä
ޥ Ϥȹͤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ή
elena@fml.org ̤ͣ Ȥ 礦
elena@fml.org ̤ͣξ ޥ elena-ctl@fml.org Ƥ Ȥˤʤ
MTA ǽ Ū MTA /usr/local/libexec/fml/command Ȥ ץ
Ԥ ޤ command ϥ ɸ Ȥꡢ ̤ͣȤ ʽ 塢MTA
Ѥͤޤ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fml4 Ȱۤʤꡢfml8 Ǥϡ ޥ η Υ ( MIME/Multipart ) ˤޤȤ Ƥ │
│ޤ │
│ │
│ʣ ޥ η ٤Ƥ Υ Τ Ƥ ޤ ⡢ ֤ ٤ ɤ│
│ Ǥ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⥸ 塼 Ĥ
fml8 Ǥ
ޥ
makefml ˤ ޥ
CGI ǤΥ ޥ
٤Ƥε ǽ FML::Command:: 饹 Υ⥸ 塼 Ȥ 褦 ߷פ ޤ Ĥޤꡢ 桼
ե 㤦 Ǥ⡢ Τ ⥸ 塼 Ƥ 뤿 ᡢ ư Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 's
1. Ͽ 륢 ɥ쥹 ѹ
2. ̤ͣ Ǥ 륢 ɥ쥹
3. Ĺ ߤʤΤǰ
4. ֤ε ߤ
1. Ͽ 륢 ɥ쥹 ѹ
ץ ѹ Ȥ ˤȤ 륢 ɥ쥹 ʤɤˤϡ ̤ͣ
륢 ɥ쥹 ѹ
ä (1) (unsubscribe) ⤦ ( ⤦ subscribe)
(2) chaddr ޥ äƤ chaddr ޥ ϡ ּ Τ褦 ʥ
elena-ctl@fml.org ȤǤ
[ ]
From: 륢 ɥ쥹
To: elena-ctl@fml.org
Subject: ʤ
chaddr Ť ɥ쥹 ɥ쥹
ǡָŤ ɥ쥹 פϺ ߣ̤ͣ 륢 ɥ쥹 Τ ȤǤ
ѹ ˤ chaddr 褦 ָŤ ɥ쥹 פ
ɥ쥹 פ ⡢ Υ 뤳 Ȥ Ǥ Ĥޤ From: 륢 ɥ쥹 פ
From: Ť 륢 ɥ쥹 Ǥ From: 륢 ɥ쥹 Ǥ⡢ ޤ ޤ
chaddr ꥯ Ȥ confirmation ָŤ 륢 ɥ쥹 פȡֿ 륢 ɥ쥹 פ
ޤ ɤ ɥ쥹 ɤ Τǡ confirmation ֻ Ʋ
ֻ Ϥ Ͽ 륢 ɥ쥹 ѹ Ԥʤ ޤ
2. ̤ͣ Ǥ 륢 ɥ쥹
̤ͣ ϲ ˤ Ȥ ä Ǥ
륢 ɥ쥹 С ꥹ (From:ǧ ڤ˻Ȥ ꥹ ) ˤ ä 뤳 ȤǼ¸ Ǥ ޤ
桼 ʬ ǹԤʤ ϡ addmeber ޥ äƲ
[ ]
From: 륢 ɥ쥹
To: elena-ctl@fml.org
Subject: ʤ
addmember ä 륢 ɥ쥹
3. Ĺ ߤʤΤǰ
ˤ off ޥ Ƴ ˤ on ޥ Ʋ
From: Υ 륢 ɥ쥹 б 륢 ɥ쥹 ؤ ߤ⤷ ϺƳ
[ ]
From: 륢 ɥ쥹
To: elena-ctl@fml.org
Subject: ʤ
off
4. ֤ε ߤ
Ƶ٤ߤ 뤿 off ޥ Ȥ λ ǼȤäƤ Ǹ 123 ä Ȥ
ޤ 礦 Ƶ٤ ˤϡ ޤ on ޥ Ƥ 褦 ˤ ޤ Ƶ٤ߤδ֤ε
get Ǽ Ƥ
[ ]
From: 륢 ɥ쥹
To: elena-ctl@fml.org
Subject: ʤ
get 124-last
124 (last) ޤǤε Ǥ ʤ
MIME/Multipart ǤޤȤ ĤΥ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 14. ̥ͣ о ޥ ( ̴ͣ ) Ǥ 뤳
֣̥ͣ о ޥ Ȥ Τϡ ֣̥ͣ Сפ SSH (Secure Shell) ǥ
makefml (/usr/local/bin/makefml) ޥ ⤷ fml (/usr/local/bin/fml) ޥ
fml8 ѹ Ƥ ޤ
makefml δ ʻȤ fml4 makefml Ǥ Ǥ fml4 Ȥ
ʤ ˡ Ĥޤ ݤĤ褦 Ϥ Ƥ ޤ
ˤĤ Ƥξܺ٤ the Section called fml4 fml8 ΰ㤤: ޥ 饤
(makefml) in Chapter 8 Ȥ Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ۥ Ⱦ Ǥ 뤳 ȡ θ ¤ˤĤ
makefml (confirmation) Ǥ Ȥ С С ϡ ޥ
Ԥ Τޤ ʤ ޤ 줬 Τ makefml ԤǤ ǡ
Ĥޤꤽ Υ Ф˥ ǡ Ū ʥ桼 Ǥ 뤳 Ȥ 뤫
Ф Ȥ Ǥ ( fml8 Ȥ δط ʤ Τ
ޤ )
̥ͣ ФΥۥ Ȥ 뤳 Ȥ Ǥ ( : ssh ƥ 뤬 ) ͤϡ ̤ͣˤȤäƺǶ θ ¤ Ŀͤ ̣
ޤ ե ľ 뤳 Ȥǡ ɤ ȤǤ Ǥ 顢̵Ũ Ǥ Ĥޤ ø Ū
ʾ ֤Ǥ
ʤ 顢 ʹ֤ޤ Ȥ ǡ Ĥ ե ե ޥåȤ 㤨 ꤷ ޤ
Τ ľ ʤɤϤ ˡ makefml (/usr/local/bin/makefml )
ޥ Ȥ fml8 Ƥ פȤ ݥꥷ 侩 ޤ
ե Ƥ⤫ ޤ ޤ ξ ¤ ʤɤ Ƥ
ʤ fml ޥ ϰ ν ֤ΰۤʤ makefml Ʊ Ǥ
makefml ޥ ͣ ץ
fml ͣ ޥ ץ
ޥ /ư Ʊ Ǥ Τǡ å ι ɤ 餫 ȤäƤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ Ѱդ
fml8 Ǥϡ ǽ Ȥ˸ ̤˥ ޥ Ѱդ ˤ Ƥ ޤ ɤ ⡢ Υݥꥷ Ǥϡ 䤿 ¿
ʤ Τ褦 Ǥ ֤Ǥ ʬΥ makefml פǤ 礦 ǡ ʲ Τ
褦 ʴ ˴ դ 뤳 Ȥˤ Ƥ ޤ (2003/03 ) "makefml Ƥ admin
ޥ CGI Ǥ ˤʤꤦ ǡ ⤯ͭ פǤ "
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Σ̤ͣ ޥ (read/write)
Σ̤ͣ Ф 餫 Υǡ Ǥʤ / ǽ 顢 makefml
(or fml) Υ ޥ Ȥ Ƽ ޤ
makefml ޥ ͣ ץ
fml ͣ ޥ ץ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Σ̤ͣΥǡ 륳 ޥ (read only)
Σ̤ͣ Ф ǡ ( 䲿 Υ ޥ ) Ǥ⡢ makefml (or fml) Υ ޥ Ȥ Ƽ
ޤ 礦
makefml ޥ ͣ ץ
fml ͣ ޥ ץ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǡ Υ ޥ (read only)
Σ̤ͣȴؤ Τʤ ޥ ޤ Ȥ С ⥸ 塼 ɥ OS
Υ 䥨 ꥢ ɽ Ǥ fml Ƭʸ Ĥ ޥ
Ѱդ ޤ
fmladdr [-n]
fmlalias [-n]
fmldoc ⥸ 塼
fmlconf [-n] $ml
( fmlconf 㤦 )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣ Ȥ ñ ʤ륳 ޥ wrapper
PGP / GPG ޥ ޥ ( : fmlpgp) Ǥ⡢ Τ
δ ϡ
¤ϡ Υ ޥ Ϥ ץ ǡ ץ Ϥ ʳ Ǻ
äƤ ޤ ޤ fml8 Υ ץ ϲ Ϥ Υ ޥ Ϥ ץ ϲ Ϥ Ƥ Ϥ
ޤ ֥ ޥ 饤 ץ ʤɤ ͤ ʤ ⡼ ɡפ makefml ˰ܤ Ȥ
櫓 ǤϤʤ Ϥ Ǥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ܤ ޥ Σ̤ͣȤδؤ Ϥʤ Τ (read / write ?)
줬 ֺ 륱 Τ褦 ʵ ޤ ɤ Ƥ 顢 fml Ƭʸ Ĥ
ޥ Ѱդ ޤ
: ס HTML 롣
fmlhtmlify [-I DIR] $src_dir $dst_dir
ʤߤ fml ˸ ꤵ 줺 MH ե ʤɤǤ⤫ ޤ ޤ ͡ ü
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Υ ޥ 饤 ץ
libexec/ bin/ ˤ (.cgi Ͻ ) ٤Ƥ˶ 륳 ޥ 饤 ץ
--debug
--help
-c file
-o key=value
Σ ĤǤ -c ϥǥե ǤϤʤ main.cf Υѥ ˻Ȥ ޤ ޤ -o ˤ
(config.cf ǻ ꤹ ѿ ) ξ Ǥ -o ȤäƤ ꤢ
-o key1=value1 -o key2=value2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣκ
% su fml
% makefml newml ͣ
֣ͣ פϡ ξ ǥե Υɥᥤ ʤ ֣ͣ פǥ 륢 ɥ쥹( 桼 ᥤ )
˻ ꤹ С ɥᥤ б ޤǴޤ makefml Ŭ ˽ ͤǤ
ǥե С ˤ ᥤ ǻ ꤷ Ƥ ޤ ޤ ष
侩 ޤ Ȥ Хǥե ɥᥤ (fml.org) Ǥ
Ǥ
% makefml newml elena
% makefml newml elena@fml.org
路 Chapter 5 Ȥ Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣκ
% su fml
% makefml rmml ͣ
֣ͣ פϡ ξ ǥե Υɥᥤ ʤ ֣ͣ פǥ 륢 ɥ쥹( 桼 ᥤ )
˻ ꤹ С ɥᥤ б ޤǴޤ makefml Ŭ ˽ ͤǤ Ȥ
Хǥե ɥᥤ (fml.org) Ǥ Ǥ
% makefml rmml elena
% makefml rmml elena@fml.org
rmml ϡ ʤ newml ޤ ۡ 쥯 ȥ ä ꡢ MTA
alias γ ä Ȥ ä ʤ ʤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̥ͣ С Ⱥ
̤Σ̥ͣ С useradd userdel Ǥ
% su fml
% makefml useradd ͣ 륢 ɥ쥹
% makefml userdel ͣ 륢 ɥ쥹
֣ͣ פϡ ξ ǥե Υɥᥤ ʤ ֣ͣ פǥ 륢 ɥ쥹( 桼 ᥤ )
˻ ꤹ С ɥᥤ б ޤǴޤ makefml Ŭ ˽ ͤǤ
% su fml
% makefml useradd elena rudo@nuinui.net
% makefml userdel elena rudo@nuinui.net
% makefml useradd elena@fml.org rudo@nuinui.net
% makefml userdel elena@fml.org rudo@nuinui.net
ʤ ʤ褦 useradd ޥ
useradd
adduser
subscribe
add
ɤ ȤäƤ ư ޤ ޤ userdel
userdel
deluser
bye
remove
resign
signoff
unsubscribe
ɤ ȤäƤ ư ޤ ( : BSD System V ɤ ή Ǥ ɤ 褦 ˤ Ƥ ޤ
:-)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̥ͣ С Υ ɥ쥹
% su fml
% makefml chaddr ͣ Ť 륢 ɥ쥹 륢 ɥ쥹
֣ͣ פϡ ξ ǥե Υɥᥤ ʤ ֣ͣ פǥ 륢 ɥ쥹( 桼 ᥤ )
˻ ꤹ С ɥᥤ б ޤǴޤ makefml Ŭ ˽ ͤǤ
% su fml
% makefml chaddr elena rudo@nuinui.net teddy@nuinui.net
% makefml chaddr elena@fml.org rudo@nuinui.net teddy@nuinui.net
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
% makefml off elena 륢 ɥ쥹
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
off
% makefml on elena 륢 ɥ쥹
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
% makefml log elena
% makefml log elena@fml.org
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
С ꥹ Ȥ
% makefml list elena
ԤΥꥹ Ȥ ޤ
% makefml list elena member
С Υꥹ ( Ʋ ԤΥꥹ )
ºݤˤϡ config.cf Ѳ դΥޥåפ Ǥ
% makefml list elena MAP̾
ʤ Ĺ Ǥ ѤʤΤǡ primary_xxx_map xxx_maps
% makefml list elena xxx
Ⱦ Ƥ ɤ ȤˤʤäƤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ѹ
2004/11 ߡ ٱ ˥塼 ե Υƥ Ǥ ư Ƥ ޤ ˥塼 Ǥ
ޤ ޤ ߤ ɬ Ȥ ֤Ǥ ե졼 Ϻ ѤߤȤ ơ Ǥ
ޤΤȤ config.cf ʤɤǥ Խ Ʋ _o_
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ȴ Ⱥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│makefml Ԥ ְΤ ͤǤ :-) makefml Ԥϡ ( │
│ ¤μ夤) ȴ Τ Ԥʤ Ȥ Ǥ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
̤Σ̥ͣ С addadmin deladmin Ǥ
% su fml
% makefml addadmin ͣ 륢 ɥ쥹
% makefml deladmin ͣ 륢 ɥ쥹
֣ͣ פϡ ξ ǥե Υɥᥤ ʤ ֣ͣ פǥ 륢 ɥ쥹( 桼 ᥤ )
˻ ꤹ С ɥᥤ б ޤǴޤ makefml Ŭ ˽ ͤǤ Ȥ
% su fml
% makefml addadmin elena rudo@nuinui.net
% makefml deladmin elena rudo@nuinui.net
% makefml addadmin elena@fml.org rudo@nuinui.net
% makefml deladmin elena@fml.org rudo@nuinui.net
ʤ ʤ褦 addadmin ޥ
addadmin
addpriv
ɤ ȤäƤ ư ޤ ޤ deladmin
byeadmin
byepriv
ɤ ȤäƤ ư
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
졼 Ⱥ
̤Σ̥ͣ С addmoderator delmoderator Ǥ
% su fml
% makefml addmoderator ͣ 륢 ɥ쥹
% makefml delmoderator ͣ 륢 ɥ쥹
֣ͣ פϡ ξ ǥե Υɥᥤ ʤ ֣ͣ פǥ 륢 ɥ쥹( 桼 ᥤ )
˻ ꤹ С ɥᥤ б ޤǴޤ makefml Ŭ ˽ ͤǤ Ȥ
% su fml
% makefml addmoderator elena rudo@nuinui.net
% makefml delmoderator elena rudo@nuinui.net
% makefml addmoderator elena@fml.org rudo@nuinui.net
% makefml delmoderator elena@fml.org rudo@nuinui.net
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml ޥ makefml ޥ
ν礬 ۤʤ뤳 Ȥ С fml (/usr/local/bin/fml) ޥ makefml ޥ
Ʊ Ǥ ñ ˡ Ȥ ʬ Ʋ
fml ޥ Ǥ
% fml ͣ ޥ [ ޥ Υ ץ ]
Ȥʤ makefml Ǥ
% makefml ޥ ͣ [ ޥ Υ ץ ]
Ǥ ƥ ޥ λȤ ˤĤ Ƥϡ Ϥ makefml ᷲ Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ɥ쥹 ɽ (fmladdr ޥ )
fmladdr (/usr/local/bin/fmladdr) ϡ Υۥ Ȥ ƤΥ ɥ쥹( Υ桼 ѡ
) ޤ
Important: Τˤϡ /etc/passwd + Postfix
alias Τ ٤ ( Ĥޤ ꥹ ) Ƥ ޤ
% fmladdr
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fmladdr fmlalias ΰ㤤 ϡ 桼 ( /etc/passwd ) │
│ फ Ȥ Ǥ fmladdr ϴޤߤޤ fmlalias ϴޤߤޤ fmlalias ϡ │
│alias ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ꥢ ΰ ɽ (fmlalias ޥ )
fmlalias (/usr/local/bin/fmlalias) Ϥ Υۥ Ȥ Ƥ alias
ޤ Τˤϡ Postfix alias Ƥ ޤ
% fmlalias
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fmladdr fmlalias ΰ㤤 ϡ 桼 ( /etc/passwd ) │
│ फ Ȥ Ǥ fmladdr ϴޤߤޤ fmlalias ϴޤߤޤ fmlalias ϡ │
│alias Τߤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(fmlconf ޥ )
fmlconf (/usr/local/bin/fmlconf) ϰ ˣͣ ꡢ Σ̤ͣ ѿ ޤ -n
ǥե Ȱۤʤ ѿ Ͱ ߤ ޤ
롣
% fmlconf elena
ǥե Ȱۤʤ ѿ ߤ 롣
% fmlconf -n elena
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⥸ 塼 ɥ (fmldoc ޥ )
fmldoc λȤ perldoc Ǥ fml դΥ⥸ 塼 Υɥ
ޤ ¤ΤȤ perldoc ؤ wrapper Ǥ
Ȥ С FML::Process::Kernel Υɥ Τ褦 ˼¹Ԥ Ƥ
% fmldoc FML::Process::Kernel
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HTML (fmlhtmlify ޥ )
fml8 ϡ ǥե ǡ ưŪ ˵ HTML Ƥ ޤ Υ ޥ ϰ پä ƽ
䡢 Ť ̤ͣΰܹԻ ˻Ȥ Ǥ
% fmlhtmlify 쥯 ȥ Υǥ 쥯 ȥ
% fmlhtmlify /var/spool/ml/elena/spool /some/where/mlarchive/elena
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. а (ǧ ڥꥹ Ȥΰ )
2. ԥꥹ Ȥ
3. ̤ͣ ƾä Ƥ ޤä ᤷ (CUI,CGI,admin ޥ )
4. ƤǤ 륢 ɥ쥹 (CUI,CGI,admin ޥ )
5. ɥ쥹
6. Ͽ 륢 ɥ쥹 ѹ
1. а (ǧ ڥꥹ Ȥΰ )
elena ML Υ а ϡ Υ ޥ Ԥ Ƥ
makefml list elena
⤷
makefml list elena member
¼ ˡ ԤΥ ޥ ϸ member ά ˳ Ƥ ޤ
2. ԥꥹ Ȥ
makefml list elena recipient
⤷
makefml list elena active
3. ̤ͣ ƾä Ƥ ޤä ᤷ (CUI,CGI,admin ޥ )
makefml rmml פǣ̤ͣ Ƥ
% makefml reviveml ͣ
᤻ ޤ
CGI Ǥ Ǥ rmml Ǿä Ƥ reviveml Ǥ ޤ
ȴ (admin ޥ ) Ǥϡ Ͻ
% rm -fr /var/spool/ml/elena
ʤɤȤ ƣ̤ͣ Ƥ ޤä fml8 ϰϤǸ ᤹ ˡ OS
äǤ OS ΥХå åפ ᤷ Ʋ ( ޤ Хå åפ 礦)
4. ƤǤ 륢 ɥ쥹 (CUI,CGI,admin ޥ )
̤ˤϡ ˥桼 Ȥ Ƥ
% makefml add ͣ 륢 ɥ쥹
Υ ɥ쥹 ˤ ޤ ޤ
ǡ ϰ ˤ Ȥ ϲ 顢 ϼ ̤ͣ
ϲ ˤ ʤ顢 addmember ޥ äơ ʥ ɥ쥹
ơפ
̥ͣ Фξ makefml äƲ
% makefml addmember ͣ 륢 ɥ쥹
Υ ޥ ϼ Σ Ĥɤ ȤäƤ Ʊ Ǥ add2member add2members addmember
addmembers
ȴ (admin ޥ ) Ǥ Ǥ
To: elena-ctl@fml.org
Subject:
admin pass ѥ
admin addmember ͣ 륢 ɥ쥹
ޤΤȤ CGI Ǥϡ Υ ޥ Ȥ ˤʤäƤ ޤ
5. ɥ쥹
̤ͣ Ͻ ԤȤ Ǥ Ȥ
ޤ
̥ͣ Фξ makefml äƲ
% makefml addrecipient ͣ 륢 ɥ쥹
recipient_maps ˤΤߥ ɥ쥹 Ͽ Υ ޥ add2recipient
add2recipients addrecipient addrecipients Τɤ Ǥ
ȴ (admin ޥ ) Ǥ Ǥ
To: elena-ctl@fml.org
Subject:
admin pass ѥ
admin addrecipient ͣ 륢 ɥ쥹
ޤΤȤ CGI Ǥϡ Υ ޥ Ȥ ˤʤäƤ ޤ
6. Ͽ 륢 ɥ쥹 ѹ
̥ͣ Фξ makefml äƲ
% makefml chaddr ͣ 륢 ɥ쥹 륢 ɥ쥹
ȴ (admin ޥ ) Ǥ Ǥ
To: elena-ctl@fml.org
Subject:
admin pass ѥ
admin chaddr ͣ 륢 ɥ쥹 륢 ɥ쥹
CGI Ǥ chaddr ޥ Ѳ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 15. ե
Υۥ ȤΤ ٤ƤΣ̤ͣΥǥե ѹ
/usr/local/etc/fml/site_default_config.cf ˽Ʋ ե ޥåȤ .cf
Ĥޤ config.cf Ǥ
Υե fml4 site_force.ph ΤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 's
1. elena ̤ͣ
1. elena ̤ͣ
ѿ ɽ
% /usr/local/bin/fmlconf elena
ǥե Ȱۤʤ ѿ ɽ
% /usr/local/bin/fmlconf -n elena
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 16. [fml8 Ǥ ] ե ˤĤ
ɤ ʤ Ȥ ޤǤ Ѥ Ū Ȥ Ǥ
: fml-devel 205
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե δ ܹ
ܷ
ե -
Ǥ Ȥ С ꥹ Ȥϼ Τ褦 ˤʤ
recipients-
members-
ꥹ Ȱʳ ˤ 롼 Ŭ ޤ Ȥ
passwd-admin
passwd-moderator
passwd-cgiadmin
Ȥ ä Ǥ
ˡ ʡ ٤ ߤ 뤴 Ȥ
members-
recipients-
뤳 Ȥˤ ޤ Ǥ⡢ Ƥ recipients-* ϥ ߡ ˲ ʤ ʤ Ȥ ¿ Ǥ 礦:)
Ȥ ʬ Ƥ Ǥ ºݡ ɤ ĤΤ Ϥ褯 狼 Ǥ Ǻ
Ȥ ϡ Ū 뤳 Ȥˤ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: ̤ͣΥ С ԥꥹ
primary_recipient_maps = recipients
# ߴ Τ actives
recipient_maps = recipients
actives
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: ȴ Υꥹ
recipients-admin
members-admin
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
졼 Υꥹ
recipients-moderator
members-moderator
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ȴ Υѥ
etc/passwd-admin
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│4.0 Ǥ etc/passwd Ǥ │
│ │
│ ѥ ڰʳ ξ ⤢ ǡ ֥ե - ̾ ˤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 17. ޥ λ
ǥ : ư ե
ץ ( /usr/local/libexec/fml/distribute ) ¤ ɤ Ȥ Ǥ /some/
where/help ե ֤ Ȥ ޤ Ȥ help@fml.org ̤ͣ ꡢ Υ ɥ쥹
˥ ( 蘆 :-) إ ե ֤ Ȥ Ǥ
ξ config.cf (e.g. /var/spool/ml/help/config.cf) Τ褦 ˤʤ
article_post_restrictions = permit_anyone
config.cf ե =cut ʹߤ hook ޤ
$distribute_run_start_hook = q{
$curproc->reply_message( {
type => "text/plain; charset=iso-2022-jp",
path => "/some/where/help",
filename => "help",
disposition => "help example",
});
$curproc->stop_this_process();
};
Ǹ
$curproc->stop_this_process();
fml4 $DO_NOTHING fml8 Ǥϥ åɤǤ HOOK
ʹߡ 뤵 褦 ˤʤ Ĥޤꡢ ʤˤ Ԥ ʤ 櫓 Ǥ
ΤˤϡֿȤΤ ϲ Ԥ reply_message() åɤǡ 塼
줿 Ԥʤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. ӥ ư
2. ɤ ո դ ͣ
1. ӥ ư
ޥ guide Ȥ ޥ ɤ ޤ λ Ȥߤ
Ǥ 礦
ǥե Ǥϥ ƥ 졼 ȤΥ ɰ ⤬ Ȥ ޤ fml4 Τ褦 ˣ̤ͣΥۡ guide ե
뤬 ǤϤ Ȥ fml4 Ȥθߴ ݻ ƣ̤ͣΥۡ 쥯 ȥ
guide ե С ֤ Ƥ
֥ ˤ ɤ פˤϡ ⤦ ҤȤҤͤ Ǥ
Τ ϡ Τ褦 HOOK Ǿ guide ޥ Ԥ ˤ 褤 Ǥ 礦
ʤ ̾ Ԥʤ 褦 ˤ Ƥ ޤ
$distribute_run_start_hook = q{
# guide ޥ ӽФ ޤ
# guide ޥ Ƥ ѤΥ 륭 塼 ƥ
use FML::Command;
my $dispatch = new FML::Command;
my $context = $curproc->command_context_init("guide");
$dispatch->guide($curproc, $context);
# Ԥʤ ޤ
$curproc->stop_this_process();
};
# ޥ ɤ 褦
$command_mail_run_start_hook = $distribute_run_start_hook;
fml4 Ȱۤʤꡢ ȥ ޥ Ѥ 줾 ץ Ȥ HOOK ʬ 뤳 Ȥ
Ʋ Τ Τ褦 ˡ Ǹ Ʊ Υ ޥ Ѥ HOOK
( Τ褦 ѿ ԡ ʬ Ǥ )
$command_mail_run_start_hook = $distribute_run_start_hook;
2. ɤ ո դ ͣ
ְո ա ѤΣ̤ͣ Ƥߤޤ 礦
쥷 Ԥ˻ ޤ 㤤 ޤ
Σ̤ͣ˰ո Ƥ 줿 ͤˤϡ Ȥꤢ ֻ ֤ ո ꤬ Ȥ ޤ Ф餯
äƤ͡ פ Ƥ 줿 ط Ԥ ޤ ơ (1) Ǥ ơ (2)
˽Ф (3) Σ̤ͣȤ 롢 褦 ꤷ ޤ (3) ϡ ֻ ˡ ط
Ԥ 뤿 ε ǽ Ȥ Ǥ
[config.cf]
article_post_restrictions = permit_anyone
=cut
$distribute_run_start_hook = q{
my $cred = $curproc->credential();
my $sender = $cred->sender();
# ̤ͣΥ С Ǥʤ ʤ饬 ɤ ޤ
# ̤ͣΥ С Ф Ƥ ̤Σ̤ͣȤʤ
# HOOK ˤ ɤ ǽ " ä " ֤Ǥ
unless ($cred->is_member($sender)) {
# guide ޥ ӽФ ޤ
use FML::Command;
my $dispatch = new FML::Command;
my $context = $curproc->command_context_init("guide");
$dispatch->guide($curproc, $context);
}
};
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ï Ǥ⥳ ޥ 뤬 Ȥ
command_mail_restrictions ϥ ޥ С Ƥ ޤ
command_mail_restrictions = permit_anyone
̤ͣΥ С ï Ǥ⥳ ޥ 뤬 Ȥ ޤ
Ƥ Τ ĻȤ Ȥ ΤϤ 塢 ϲ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. ï Ǥ⥳ ޥ 뤬 Ȥ
2. ƥॢ ơ ï Ǥ⥳ ޥ 뤬 Ȥ
3. ޥ ï ʤ 褦 ˤ
1. ï Ǥ⥳ ޥ 뤬 Ȥ
command_mail_restrictions = permit_anyone
2. ƥॢ ơ ï Ǥ⥳ ޥ 뤬 Ȥ
command_mail_restrictions = isolate_system_accounts
permit_anyone
: reject_system_accounts Ǥ fml8 2008/08/17 ʹߤΥС Ǥ
isolate (SPAM γ ) 侩 Ǥ
3. ޥ ï ʤ 褦 ˤ
command_mail_restrictions = isolate
: reject Ǥ fml8 2008/08/17 ʹߤΥС Ǥ isolate (SPAM γ )
侩 Ǥ
ˤ 路 the Section called ǥ : ޥ
ï ʤ 褦 ˤ Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ޥ ï ʤ 褦 ˤ
Ȥ aliases Խ ơ Τ ֳμ¤Ǥ Ȥ
Ƥϡ Τ褦 ʤ ͤ ޤ
ޥ ץ ư Ƥ⡢ ¨ ¤˽ λ Ǥ ޤ 줬(aliases Խ
뤳 Ȥ ) ֳμ¤ Ǥ
use_command_mail_function = no
ץ ư Ƥ ޤ ΤǤ Ƽ 礦
use_command_mail_function = yes
command_mail_restrictions = reject
( С ʳ οͤ Ϥ ) guide 줺 Ƥ ʤ ϥ
С Ǥʤ פȤ ֤ Ǥ
ϡֳƹԤ Ƥ ޤ פĤޤ Ƥ ޤ Ȥ ȤǤ
: β ֥ ޥ 뤬 Ȥ ʤ Ȥ Ƥ Ȥ ꤷ Ƥ ޤ ̤ʤɤǤϡ
ʤ Ȼפ ޤ ̤Σ̤ͣǤϡ SPAM Ʊ Ƥ ޤ ˤʤ
ǡ fml8 2008/08/17 ʹߤΥС Ǥ isolate (SPAM γ )̿ 侩 Ǥ
use_command_mail_function = yes
command_mail_restrictions = isolate
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : (1)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ Ǥϥ å ˤ ǧ ڤ 夲 Ƥ ޤ Τ ᡢ ȸ Ƥ│
│ │
│ │
│ Ȥ С ⤽ ⥤ ͥå SMTP ե ʤ 褦 ʥ Ф ꡢ Ф│
│ ־ ʤɤ ʤ ٤ Ǥ │
│ │
│fml8 ñ ǽ PGP ǧ Ǥ ξ ô Ԥ PGP/│
│GPG 뵻 Ϥ ᤵ PGP Υͥå Ǥ │
└─────────────────────────────────────────────────────────────────────────────┘
ʥ С ꥹ Ȥ ޥ 뤳 ȤǹԤʤ ޤ
$member_maps $primary_member_map ˥ ʥ
С Υꥹ ( Ǥ $ml_home_dir/members-mailmag ե ޤ 礦)
$member_maps ɲä ޤ
member_maps = $ml_home_dir/members-mailmag
Υե ƼԤΥ ɥ쥹 Ʋ
ʤ subscribe ޥ ϥǥե ΤޤޤǤ ޤ ޤ [13] Ȥ Τ
subscribe unsubscribe ޥ $primary_member_map
$primary_recipient_map Ф ѹ Ȥ ͤ С ǧ
ڻ member_maps recipient_maps ΤǤ ʤ 줾 ǥե
ϼ Τ褦 ˤʤäƤ ޤ
member_maps = $primary_member_map
$admin_member_maps
recipient_maps = $primary_recipient_map
file:$ml_home_dir/actives
$recipient_maps actives ե 뤬 äƤ ϸߴ Τ (fml8 Ǥϡ actives
ե Ȥ ޤ fml4 Υǥ 쥯 ȥ깽¤ ΤޤޤǤ ˤ 뤿 ߴ Ǥ )
ơ ͤޤ ä פȤ ˤʤäƤ Ǥ
ơ
member_maps = $ml_home_dir/members-mailmag
Ȥ ư Τ褦 ˤʤ
桼 subscribe Υ ɥ쥹 recipients ե
($primary_recipient_map) members ե ($primary_member_map) ɲä
ޤ ǧ ڤ members-mailmag ˤ ƹԤʤ ǡ members ե ǧ ڻ Ȥ
ޤ Τ ᡢ ̥桼 Ǥ ޤ Ʋ ʥ桼 members-mailmag ե
륢 ɥ쥹 Υ桼 Ǥ
recipients ե ($primary_recipient_map) ˡ subscribe 桼
ˤ ƹԤʤ ޤ ̤Σ̤ͣȰ Ǥ Τ褦 map ٤
뤳 Ȥ Ѥ ˼ ޤ
Ƥϡ դ ǽ Ǥ
primary_member_map = $tmp_dir/members-dummy
ʤɤ ꤷ С ꥹ Ȥο ʬ ưǤ ƤǤ members ˤ ʥ ɥ
쥹 ޤ Τۤ fml4 Ǥ 礦
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : (2)
2004/06 ʹ : 塼 ƥ ˤ ֤虜 ȥ 顼 ˤ ƥ 륭 塼
Ȥ ǧ Ƥ flush ( ) ˤʤ
(1) ޤ ƥ 塼 졢 (2) 塼 ǧ Τ Ϥ
Ȥ Ĥޤ Υ Ф ʤ ޤ
ϼ Τ褦 ˤ Ƥ
config.cf Ǥϡ Τ褦 ߤ ʤ ݡ ȤǤ Ƥ ޤ
smtp_servers = ̵ ʥȥ ݡ
[ ]
smtp_servers = 127.0.0.1:2025
Ƥ ȡ Ƥ ˤ 顼 ˤʤꡢfml8 Υ 륭 塼 ޤ
Ȥ ְ㤨 ʤ ä ȳο ꡢ ɤ ȥ
ݡ Ȥ ƥ 塼 夷 Ƥ
% fml -o smtp_servers= ȥ ݡ ͣ flushq
[ ]
% fml -o smtp_servers=127.0.0.1:25 ͣ flushq
ʤߤ flush flushq ޥ Ǥ flushq Ť餤 Τ flush ޥ
äƤߤޤ
Ȥ⡢ Υ ޥ Ǥ ݤʤΤǡ 륹 Ȥ
äƤ ɤ Ǥ 礦
ˡ ̤ͣΥ 塼 ե WWW ФǸ ˤ Ƥ OK ʤ顢 Υ 륹
Ȥ CGI Ǽ¹Բ ˤ Ƥ Ȥ ˡ Ǥ 礦 Υ 塼 ե Ƥ
ޤäơ ˤʤ ϻפ ޤ ƥ ֤Ǻ ޤ
OK Τ ԤȰۤʤ Ȥ ˤ ʥ
ˤʤ 礦 Ȥ Τϡ Ԥ ʬ Ǽ ʬ OK ȡ ο /
Ť ʤ뤫
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ï Ǥ ʣͣ
article_post_restrictions ֵ Ƥ С פ Ƥ ޤ
permit_anyone Ȥ ˤʤ
article_post_restrictions = permit_anyone
fml4 Ȱۤʤꡢ 褦 ˽ Ǥ פȤʤ뤳 Ȥ Ʋ
*_restrictions reject_system_special_accounts Ȥ root ʤɤ Ƥ 롼 뤬
ǥե Ǥϡ Ū ˻ ꤷ Ƥ ޤ (fml4 Ǥϡ Τ Ǥ
)
fml4 Τ褦 ˡ root ʤɥ ƥ ʥ Ƥ Υ桼
դ Τ褦 ˤ ޤ
article_post_restrictions = reject_system_special_accounts
permit_anyone
: reject Ǥ fml8 2008/08/17 ʹߤΥС Ǥ isolate (SPAM γ
) 侩 Ǥ
article_post_restrictions = isolate_system_special_accounts
permit_anyone
ʤߤ 2008/08/17 article_post_restrictions Υǥե fml4 ߴ Τ ᡢ
Τ褦 ˤʤäƤ ޤ
article_post_restrictions = reject_system_special_accounts
permit_member_maps
reject
ΰ root ʤɥ ƥ ʥ Ƥϵ ݡפ member_maps ˤ
Ǥ Ƥ ġ Ǥʤ ʤ Ȥʤ
ʤ reject_ ʤˤʤˡפ permit_ ʤˤʤˡפȤ ̿ ϡ ޥå Ȥ ʤ
ޥå ʤ ˤϼ ξ ޤ
2008/08/17 ʹߤΥС Ǥ SPAM Υ ǥե Ǥ
article_post_restrictions = isolate_system_special_accounts
permit_member_maps
isolate
: reject ǤϤʤ isolate ȤʤäƤ 롣
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. ɥᥤ Ǥ Ǥ ML
1. ɥᥤ Ǥ Ǥ ML
fml4 Τ褦 HOOK ǥ Х ѿ Ȥ ä ȤϽ 褻
IO::Adapter PCRE (Perl ߴ ɽ ) ݡ Ȥ Ѥ example.co.jp ɥᥤ
Ƥ Ƥ restrictions ޤ
[/var/spool/ml/elena/config.cf]
article_post_restrictions = reject_system_special_accounts
permit_member_maps
reject
member_maps = pcre:$ml_home_dir/sender.pcre
[$ml_home_dir/domains]
\S+\@example.co.jp
: fml8 2008/08/17 ʹߤΥС Ǥ isolate (SPAM γ ) 侩 Ǥ
[/var/spool/ml/elena/config.cf]
article_post_restrictions = isolate_system_special_accounts
permit_member_maps
isolate
member_maps = pcre:$ml_home_dir/sender.pcre
[$ml_home_dir/domains]
\S+\@example.co.jp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ե Ǥ ʣͣ
֥ С ʳ ơ ݤ ץ ä
ʬ λȤäƤ 륢 ɥ쥹 ѹ Τ 줿 Ȥ ֥ɥᥤ ä ä ɡ
Ȥ δְ㤤 ⤢ ž ɤ ֻ ƥ 顼 ˤʤ륱 ⤢
ǡ 2004/10/28 ʹߤ article_post_restrictions ˤϡ ξ ֤
From: Υ ɥ쥹(ǧ ڤ˻Ȥ 륢 ɥ쥹) ˤ Ʋ ʥ ץ ǽ ä
ޤ
ߤμ ܣ̤ͣε Υ桼 ε ƤΥ 饤 Ǥ Ƥ
Ȥ Ǥ ¤Ĥ Ǥ ˤϡ In-Reply-To: ⤷
References: ǡ ( 콵 ְ ) ε message-id: Ȥ Ƥ Ƥϡ
(From: Υ 륢 ɥ쥹 ˴ؤ ) Ƥ ǽ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷
1. ե Ǥ ʣͣ
1. ե Ǥ ʣͣ
ϼ Τ褦 ˤʤ check_article_thread Υ ץ Ǥ
article_post_restrictions = reject_system_special_accounts
check_article_thread
permit_member_maps
reject
ǥե ˤ Ƥ ۤ ʵ ⤷ ޤ ޤΤȤ ˤʤäƤ
ޤ ε ǽ Ѥ Ū article_post_restrictions ѹ Ʋ
: fml8 2008/08/17 ʹߤΥС Ǥ isolate (SPAM γ ) 侩 Ǥ
article_post_restrictions = isolate_system_special_accounts
check_article_thread
permit_member_maps
isolate
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޡ 褦 cookie ߤ ʤ Ǥ
1) ֤ ɤΤ 餤 ޤ Ŭ
article_post_article_thread_lifetime = 86400
$article_post_article_thread_lifetime Ȥ ˤ Ƥߤޤ ǥե
ϰ
ꡢ ¤äơ Ĥ 餤 ĤޤǤ ʤΤǤ 礦 ɤλϤޤä
ɤǺǸ Ƥ 줿 ɤ 餬 ʤΤǤ 礦
2) subject: ȥ ɤΰ ط ξ å ʤ굶¤ ˤʤ
Ȼפ ޤ [14]
Ȥ⡢ Ƥ message-id Ȥ ¿ Τǡ From: ¤ ä Τۤ
Ǥ ͡
Ǥ⡢ Ǥ⡢ message-id mailer ȡ դ˼夯 ʤ ͡ UNIX @ ۥ
(FQDN ) ߤ ʤؤܤ ȡ ͽ¬ ϰϤ ʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷
1. ͤ ɤƤ ̡
1. ͤ ɤƤ ̡
졢 졼 ƥ Ȼפ ΤǤ ɤ Ǥ 礦
Ȥ м Τ褦 ֥ ɤƤ뾮 ( ) +
ɤؤΥ 饤 ʳ οͤ Ȥ ˤʤ
member_maps = $tmp_dir/members-thread-init
article_post_restrictions = reject_system_special_accounts
check_article_thread
permit_member_maps
isolate
: fml8 2008/08/17 ʹߤΥС Ǥ reject ǤϤʤ isolate (SPAM γ ) 侩 Ǥ
ޤ members-thread-init ֤ ĤǤ פǤ ޤ Υ
С ϡ Ƥ Ƥ 줿 ( ξ ˤ
) check_article_thread ̿ Ȥ ȤߤǤ
Ĥޤꡢ ǽ οͤ 롣 Υե ϣ̤ͣ 褦
οͤ ֿ Ҳ𤹤 Ȥ ȤߤǤ 졼 ɡ
ˤϾ 㤦 ųݤ Ǥ
Τۤ 졼 Ȼפ ɤ Ǥ 礦
ʤ ͥ դ ڤ PGP Ȥ Ǥ 礦
member_maps = $tmp_dir/members-thread-init
article_post_restrictions = reject_system_special_accounts
check_article_thread
check_pgp_signature
isolate
: fml8 2008/08/17 ʹߤΥС Ǥ reject isolate (SPAM γ ) 侩 Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : PGP/GPG Żҽ ¤
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ ε ǽ ˤ Crypt::OpenPGP ⥸ 塼 뤬ɬ Ǥ OS ° Υѥå ƥ ɤǥ │
│ȡ 뤷 Ʋ Υ⥸ 塼 뤬 Ƥ 塼 뤬 ǡ OS ° Υѥå │
│ ƥब Ȥ ʤ ȡ ȡ ʤ ݤǤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷
1. PGP/GPG Żҽ ¤
1. PGP/GPG Żҽ ¤
ϼ Τ褦 ˤʤ check_pgp_signature PGP/GPG ǧ ڥ ץ ʬ Ǥ
ҽ ʥ桼
article_post_restrictions = reject_system_special_accounts
check_pgp_signature
reject
ǥե ǤϻȤ ޤ ϡ Ū article_post_restrictions
ѹ Ʋ
: fml8 2008/08/17 ʹߤΥС Ǥ isolate (SPAM γ ) 侩 Ǥ
article_post_restrictions = reject_system_special_accounts
check_pgp_signature
isolate
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PGP Υ ϡ ư 老 Ȥ ̤ ˤʤäƤ ޤ Ȥ е Υ
$ml_home_dir/etc/pgp-article-post-auth/ ǥ 쥯 ȥ ˡ ȴ ѤΥ
$ml_home_dir/etc/pgp-admin-command-mail-auth/ ǥ 쥯 ȥ ֤ Ȥ ä Ǥ
Υ pgp2 pgp5 gpg ޥ Ƥ ǥե Υǥ 쥯 ȥ
Ϥʤ ȡ ⡼ ɤ Ȥ˰ۤʤ 쥯 ȥ Ȥ ᡢ fmlpgp ʤɤΥ桼 ƥ ץ (
wrapper ) Ѥ Ǥ
: elena ML ǵ ǻȤ
fmlpgp elena --article-post-auth -kg
ޥ 饤 ץ
--article-post-auth ( Żҽ )
--command-mail-auth ( ޥ ҽ )
--admin-command-mail-auth ( ȴ ޥ ҽ )
--article-post-encrypt ( Ź沽(̤ ))
ʤɤȻ Ѥ ꤷ Ƥ 줾 Ф ưۤʤ륭 Υǥ 쥯 ȥ꤬ Ȥ
ޤ
դ 륳 ޥ (wrapper) ϼ ̤
pgp2 : fmlpgp
pgp5 : fmlpgp5 fmlpgpe fmlpgpk fmlpgps fmlpgpv
gpg : fmlgpg fmlgpgv
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : PGP/GPG ǥ ޥ ǧ ڤ
1. PGP/GPG ( 桼 ⡼ ɤ ) ޥ ǧ ڤ
2. PGP/GPG admin ޥ ǧ ڤ
1. PGP/GPG ( 桼 ⡼ ɤ ) ޥ ǧ ڤ
command_mail_restrictions = check_pgp_signature
isolate
: reject Ǥ
fml8 2008/08/17 ʹߤΥС Ǥ isolate (SPAM γ ) 侩 Ǥ
fmlgpg fmlgpgv fmlpgp fmlpgp5 fmlpgpe fmlpgpk fmlpgps fmlpgpv ޥ
ä ꤷ Ʋ
: ͣ Υ
% fmlpgp --command-mail-auth ͣ -kg
the Section called ǥ : PGP/GPG Żҽ ¤ ͤˤ Ʋ
2. PGP/GPG admin ޥ ǧ ڤ
admin_command_mail_restrictions = check_pgp_signature
isolate
: reject Ǥ
fml8 2008/08/17 ʹߤΥС Ǥ isolate (SPAM γ ) 侩 Ǥ
fmlgpg fmlgpgv fmlpgp fmlpgp5 fmlpgpe fmlpgpk fmlpgps fmlpgpv ޥ
ä ꤷ Ʋ
: ͣ Υ
% fmlpgp --admin-command-mail-auth ͣ -kg
the Section called ǥ : PGP/GPG Żҽ ¤ ͤˤ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ̤ͣγ
С ¤ ̤Σ̷ͣ γ ޤ ( fml Х ֥ ˤ
) Ȥ бĶ Ķ 1 2 3 ݤ 礬 ޤ
ޤ 줾 Ѥ sales-1 sales-2 sales-3 ̤ͣ ꡢ ƣ̤ͣΥ С ϡ 줾
ݤǴ Ȥˤ ޤ ޤ Ķ sales ̤ͣ ꡢ sales
̤ͣإ sales-1 sales-2 sales-3 Υ С ˤ 褦 ˤ ޤ 礦
ϴ ǡ sales ̤ͣ 䤹 Ǥ sales ̤ͣ config.cf
recipient_maps += $ml_home_dir/../sales-1/recipients
recipient_maps += $ml_home_dir/../sales-2/recipients
recipient_maps += $ml_home_dir/../sales-3/recipients
Ȥ sales-1,2,3 ٤ƤΥ С
Ʋ ʥ С
member_maps += $ml_home_dir/../sales-1/members
member_maps += $ml_home_dir/../sales-2/members
member_maps += $ml_home_dir/../sales-3/members
Ȥ Ƥ
ѣ̤ͣξ Ǥ Ǥ ˡ $member_maps ѹ ǤϤʤ
article_post_restrictions = permit_anyone
ꤷ ơ Ǥ פȤ Ƥ ޤ Τ⥢ 礦
Ǥϥե Ƥ ޤ ǡ ˼¹ԤǤ Τ
褤 Ȥ
ʤ 顢 MySQL ʤ ޤȥ ۿ ꥹ Ȥ Ū Ǥ 礦
ɬ Ȥʤ Ǥˤ ä ǧ ڥ ƥब 顢 Ϣ Ȥ
߷פ ƤߤƤ
ʤߤ fml8 MySQL PostgreSQL LDAP Ȥ ̿ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ʬ Υ ǣ̤ͣ ʤ (Procmail )
( ʬ ) ǡ Ŀͤ ƤΥ ̤ͣ ƤΥ ɬ Τ 礬
Ȥ С ISP ΥС ɥᥤ ӥ ϡ ä ӥ
Τ褦 ʾ إå To: Cc: ơ ɤ Σ̤ͣʤΤ Ŭ fml
Ԥ
ä fml8 Ǥϥ桼 procmail ʤɤο ʬ ġ Ȥ ȴ Ԥ Ƥ ޤ :-)
Τ ᡢfml8 ˿ ġ դ ޤ OS Υѥå ƥ ɤ äƿ
ġ ȡ 뤷 Ʋ
ʤ makefml newml κݤˡ ~/.procmailrc θ /var/spool/ml/etc/procmail/
procmailrc ˺ ޤ ͤ ꤷ ƤߤƲ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
~/.procmailrc
PATH=$HOME/bin:/usr/bin:/usr/ucb:/bin:/usr/local/bin:/usr/pkg/bin
MAILDIR=$HOME/Mail # You'd better make sure it exists
DEFAULT=$HOME/Mail/mbox
LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$HOME/.lockmail
VERBOSE=on
:0
* To.*elena@fml.org
| /usr/local/libexec/fml/fml.pl /var/spool/ml/elena
:0
* To.*elena-ctl@fml.org
| /usr/local/libexec/fml/fml.pl /var/spool/ml/elena --ctladdr
# last resort, mail for me et. al.
:0
inbox/.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
С ɥᥤ
˥ɥᥤ Ĥ Υ롼 뤬 Ҥ ǡ procmail С
ɥᥤ ݤ ϴط procmailrc θ ǽ ʬ Ǥ ̤
ɬ
Ȥ⡢ С ɥᥤ Υ 桼 fml ž ꤬ MTA ʤΤǤ
ISP ʤ 륵 Фδ ԤʤäƤ ɬ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ե (1)
ʤɤǤϡ ե ꥹ Ȥ פ
ä ǤΥ ޥ Ǥ
ʲ /usr/local/etc/fml/site_default_config.cf ˽ ̤ͣ Ǥ Ƥ
Υե С ̤⺣ 뤹 ٤ƤΣ̤ͣ ͤˤʤ
إå Ǥϡ ޤ Subject: ˥ ʤ [15] Ȥˤ ޤ
article_header_rewrite_rules -= rewrite_article_subject_tag
֥إå Υ롼 ̿ Ǥ
ơ X-ML-Name: ʬ mlname ˥ ե ̾ (prepend ) Ĥޤ mlname
office#mlname ѹ ˤ ޤ
outgoing_mail_header_x_ml_name = office#$ml_name
Ż ѤǤ 顢 Ǥ פȤ ޤ 礦
article_post_restrictions = permit_anyone
root ƥ ɤ Ƥ 뤳 Ȥ Ƥ (root ʤ
̤ʥ ƥॢ reject_system_accounts
permit_anyone ɲä Ƥ )
ơּ ӤΣ̤ͣʤΤǥե 륿 ספǤ Τˤϡ֥ե 륿 餱 פˤʤ
;)
use_article_filter = no
Ȥ ơ ƤΥե 륿 ڤäƤ ޤ Τ Ǥ 礦 ̤˥ե 륿 ϡ Τ褦 ˸ ̤
no ꤷ Ƥ
use_article_body_filter = no
use_article_non_mime_filter = no
use_article_mime_component_filter = no
use_article_text_plain_filter = no
ס ͤ ޤ Ż Τǡ Ĺ ˾ ޤ 顢
̤ǵ ¸ ɬ Ǥ ơ ס subdir Ȥ ޤ
spool_type = subdir
ʤ ޥ Ȥ ʤ Ƥ ޤ
use_command_mail_function = no
ޥ 뤽 Τ ߤ ϡ aliases 鳺 륨 ʤ Ȥ μ¤Ǥ
̤ͣ 뤿 Ӥˡ aliases Ȥϥߥ Ͷ פ Ǥ 礦 ޤ CGI
CGI aliases κ٤ Ǥ ǡ ޤ ޥ
Ȥ Ƥ⡢ ֥ ޥ ѤΥץ ư ¤˽ λ ˤ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ե (2)
ʤɤǤϡ ե ꥹ Ȥ פ
ä ǤΥ ޥ Ǥ
ʲ /usr/local/etc/fml/site_default_config.cf ˽ ̤ͣ Ǥ Ƥ
Υե С ̤⺣ 뤹 ٤ƤΣ̤ͣ ͤˤʤ
ޤ ֵ subject ˤϣͣ פ ޤ
article_subject_tag = (\U$ml_name\E %05d)
Ȥ support@example.co.jp ̤ͣǤ
Subject: (SUPPORT 10000)
Ȥ Ǥ ( [ ¿ Ǥ ʤ äƤ ޤ ޤ ( ɽ
Ǥ Τǡ Ŭ ʥ פ Ǥ )
ơ Ȥ 뤿 ޥ Ѥ ޤ ɥᥤ (
: example.co.jp ) ꥯ Ȥ Ф ƤΤߡ ޥ Ѥ ȤȤ ޤ
HOOK Ǽ¸ ޤ
$command_verify_request_end_hook = q{
my $cred = $curproc->credential();
my $from = $cred->sender();
unless ($from =~ /\@example\.co\.jp/i) {
$curproc->stop_this_process();
$curproc->logerror("deny command request from $from");
}
};
: ʤߤ IO::Adapter PCRE Ȥ ǡ Ȥ ڤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s [ǧ ]
1. 륢 ɥ쥹 From ǧ ڤ
2. 륢 ɥ쥹 From ɥ쥹ǧ ڤ ʤ
1. 륢 ɥ쥹 From ǧ ڤ
ǥե From ɥ쥹ǧ ڤ ɥᥤ Ӥ ٥ ϡ config.cf
$address_compare_function_domain_matching_level ꤷ Ʋ [16]
[/var/spool/ml/elena/config.cf]
address_compare_function_domain_matching_level = 4
Ȥ С user@mail.example.co.jp Ȥ ɥ쥹 Ф ơ 3 ʤ example.co.jp ޤǤ
Ӥ оݡ 4 ʤ mail.example.co.jp ޤǤ Ӥ оݤȤ Ȥˤʤ ǥե 3 Ǥ
From ɥ쥹ǧ ڰʳ PGP/GPG ǧ ڤ Ȥ ޤ 路 the Section called
ǥ : PGP/GPG Żҽ ¤ Ȥ Ƥ
2. 륢 ɥ쥹 From ɥ쥹ǧ ڤ ʤ
[/var/spool/ml/elena/config.cf]
use_address_compare_function = no
Ȥ From ɥ쥹ǧ ڤκݤˡ 륢 ɥ쥹 ˴ؤ ʥ ɥ쥹 Ȥߤʤ ( ǧ ڤ
ˡ
From ɥ쥹ǧ ڤˤޤĤ ʬ ǡ PGP/GPG ǧ ڤʤɤȤ ̤ äǤ ( Ĥޤꡢ
ѿ no ˤ Ƥ PGP/GPG ǧ ڤ Ȥ )
ޤ restrictions permit_anyone ¼ ڤʤ Τǡ֥ ɥ쥹ǧ ڤ Ƥ
ʤ Ʊ ˤʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s [ Ͽ ]
1. subscribe ϼ Ǥ (fml4 closed + confirm )
2. unsubscribe ޥ Ǥ confirmation
3. unsubscribe ϼ Ǥ (fml4 closed + confirm )
4. chaddr ޥ Ǥ confirmation
5. chaddr ϼ Ǥ (fml4 closed + confirm )
6. ư Ͽ ȼ ʾҲ Ʊ ˹Ԥʤ
7. Υ 륢 ɥ쥹 Τߤ Ͽ ˤ 롣
8. fml 3.0 auto_regist ³
1. subscribe ϼ Ǥ (fml4 closed + confirm )
fml8 subscribe confirmation Ĥ μ ư Ͽ ǥե Ǥ
[config.cf Υǥե ]
subscribe_command_auth_type = confirmation
subscribe_command_operation_mode = automatic
ּ ʻ ˤ ϡ Τ褦 ꤬
[config.cf]
subscribe_command_auth_type = confirmation
subscribe_command_operation_mode = manual
ꤷ ϡ Τ褦 ʵ ˤʤ (1) fml8 confirmation ʤ ꥯ Ȥ
ǧ ޤ ǧ פȤ عԤʤ ޤ (2) ɥ쥹
ϼ ư ǤϹԤʤ ޤ ؤ 뤬 fml8
Υ 顢 (admin ޥ CUI GUI) ư Ǥ Ʋ
褦 Ͽ ǽ ּ ư פ פ Ѥ Ǥ
confirmation Ԥ ʤ ϼ Τ褦 ˤ Ʋ ξ ̥ͣɥ饤 Ф
յ ʤ 褦 ʵ ⤷ ޤ SPAM 褱 ˤʤ뤫 ΰ 礦
[config.cf]
subscribe_command_auth_type = manual
subscribe_command_operation_mode = manual
2. unsubscribe ޥ Ǥ confirmation
fml8 Ǥ confirmation ǥե ε Ǥ
3. unsubscribe ϼ Ǥ (fml4 closed + confirm )
unsubscribe confirmation Ĥ μ ư Ͽ ǥե Ǥ
[config.cf Υǥե ]
unsubscribe_command_auth_type = confirmation
unsubscribe_command_operation_mode = automatic
[config.cf]
unsubscribe_command_auth_type = confirmation
unsubscribe_command_operation_mode = manual
ꤷ ϡ Τ褦 ʵ ˤʤ (1) fml8 confirmation ʤ ꥯ Ȥ
ǧ ޤ غ 뤬 fml8 (2) ɥ쥹
ϼ ư ǤϹԤʤ ޤ ؤ 뤬 fml8
Υ (admin ޥ CUI GUI) Ʋ
褦 Ͽ ǽ ּ ư פ פ Ѥ Ǥ
confirmation Ԥ ʤ ϼ Τ褦 ˤ Ʋ ξ ̥ͣɥ饤 Ф
յ ʤ 褦 ʵ ⤷ ޤ SPAM 褱 ˤʤ뤫 ̣ ͡
[config.cf]
unsubscribe_command_auth_type = manual
unsubscribe_command_operation_mode = manual
4. chaddr ޥ Ǥ confirmation
fml8 Ǥ confirmation ǥե ε Ǥ
5. chaddr ϼ Ǥ (fml4 closed + confirm )
chaddr confirmation Ĥ μ ư Ͽ ǥե Ǥ
[config.cf Υǥե ]
chaddr_command_auth_type = confirmation
chaddr_command_operation_mode = automatic
[config.cf]
chaddr_command_auth_type = confirmation
chaddr_command_operation_mode = manual
ꤷ ϡ Τ褦 ʵ ˤʤ (1) fml8 confirmation ʤ ꥯ Ȥ
ǧ ޤ (2) ɥ쥹 ϼ ư ǤϹԤʤ ޤ ؤ
뤬 fml8 Υ (admin ޥ CUI
GUI) Ʋ
褦 Ͽ Ǹ夬 ּ ư פ פ Ѥ Ǥ
confirmation Ԥ ʤ ϼ Τ褦 ˤ Ʋ ξ ̥ͣɥ饤 Ф
յ ʤ 褦 ʵ ⤷ ޤ SPAM 褱 ˤʤ뤫 ̣ ͡
[config.cf]
chaddr_command_auth_type = manual
chaddr_command_operation_mode = manual
6. ư Ͽ ȼ ʾҲ Ʊ ˹Ԥʤ
̤
7. Υ 륢 ɥ쥹 Τߤ Ͽ ˤ 롣
̤
8. fml 3.0 auto_regist ³
fml4 Ǥ auto_regist fml 3.0 ε ˤʤ С
ꥹ Ȥˤ ꥹ Ȥˤ members ե Ȥ Ǥ
ޤ 顢 ε ǽ μ פ ϻפ ޤ ⤷ ޤ
ߥ ϡ Ȥꤢ
primary_recipient_map = $primary_member_map
Ȥ 褤 Ȥˤʤ ư Ͽ ˥ 顼 Ǥޤ ( Ǥ˥ С Ǥ ) 顼
뤿 ϡ Ͽ ݤǤ primary_recipient_map Ϥ Τޤޥ ߡ Υե ƻĤ
ºݤ (recipient_maps) members ˤ Ƥ ޤ Τ 褤 Ǥ 礦
recipient_maps = $primary_member_map
ξ recipients Ȥ ե Ԥʤ Ƥ ޤ ºݤε ˤϴط
Ȥˤ members Ȥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s [ ]
1. MAINTAINER elena-admin ʳ ˤ
2. ȴ ϣ̤ͣΥ С Ǥʤ Ƥ
3. Subject: ˱ Ȥ ѹ
4. ꥹ Ȥ ѹ
5. /etc/group Ǥ ͣ
6. ( Ƽ ) ˤϣ̤ͣε ʤ
7. μԤ ѹ
1. MAINTAINER elena-admin ʳ ˤ
config.cf maintainer Ʋ
maintainer = ɥ쥹
[EXAMPLE]
maintainer = admin@example.co.jp
륢 ɥ쥹( admin@example.co.jp ) ǥ Ȥ 褦 MTA
Ƥ
ʤ 륵 Фˤ Ƥϡ Ԥ ɥᥤ 뤳 Ȥ
Ʋ
ñ ˥ 顼 ɤμ Ѥ ʤ顢 maintainer ( elena ML ʤ
elena-admin@fml.org ) Υե ñ Ǥ /etc/mail/
aliases ѹ 뤫 $maintainer_recipient_maps ѹ ǹԤʤ ޤ
Ԥ MTA ե Ƥ ޤ Ǥϡ elena-admin Υ
fml8 fml8 $maintainer_recipient_maps ˤ äƺ Ԥʤ ޤ
ϡ ɥ 顼 fml8 Ǽ㴳 ¤Τ Ǥ 顼
Ȥ ԥꥹ Ȥ MTA ǤϤʤ fml8 ¦ Ǵ ɬ ʤΤǼ ޤ
Ȥ WWW ե ֥ 顼 Ȥ ԥꥹ Ȥ ꤹ Ȥ ä ꤷ
ǽ Ǥ
2. ȴ ϣ̤ͣΥ С Ǥʤ Ƥ
ʤˤ⤷ ʤ Ƥ OK Ǥ fml8 Υǥե Τ褦 ꤵ ǡ Τ褦 ޤ
member_maps = $primary_member_map
$admin_member_maps
3. Subject: ˱ Ȥ ѹ
Subject Υ ɤˤ ƼԤ ؤ 뤳 Ȥ ޤ
Ȥ Subject ˡֻ Ȥ ̥ͣɥ饤 Ф ľ ô
إե ɤ Ƥ 褤 ä Ǥ
¸ 뤿 ϡ Τ褦 HOOK ͤ ޤ
$distribute_run_start_hook = q{
my $config = $curproc->config();
my $header = $curproc->incoming_message_header();
my $subject = $header->get('subject') || '';
use Mail::Message::Subject;
my $sbj = new Mail::Message::Subject $subject;
$sbj->mime_header_decode();
my $buf = $sbj->as_external_form();
my $map = '';
# : Υե EUC-JP ǽƲ
if ($buf =~ / /i) {
# info@example.co.jp Υ С
$map = '$ml_home_dir/recipients.info';
}
else {
# ǥե
$map = '$ml_home_dir/recipients';
}
if ($map) {
$config->set("recipient_maps", $map);
}
};
$ml_home_dir/recipients.info (/var/spool/ml/elena/recipients.info) ˤϡ
ô Υ ɥ쥹 ޤ
4. ꥹ Ȥ ѹ
Υ쥷 Ԥ⻲ Ȥ Ʋ ʥ å ǡ ʸ ֤ˤʤ Ǥ
$distribute_run_start_hook = q{
my $config = $curproc->config();
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) =
localtime(time);
my $map = '';
if ($hour > 9 && $hour <= 17) {
# ͤ
$map = '$ml_home_dir/recipients.daytime';
}
else {
# ͤ
$map = '$ml_home_dir/recipients.night';
}
if ($map) {
$config->set("recipient_maps", $map);
}
};
5. /etc/group Ǥ ͣ
fml8 IO IO::Adapter ˤ ݲ Ƥ ޤ Ȥ мԤ 롼 fml ˴ޤޤ
桼 ˤ ϡ Τ褦 ˤ ǽ ʬ Ǥ
[config.cf]
recipient_maps = unix.group:fml
Ǥ褤 ˡ ¾ ɥᥤ ʤ Υ Ф˥ ꥢ
ʤ ʤ Τ Ʋ
6. ( Ƽ ) ˤϣ̤ͣε ʤ
ε ǽ ɬ ʤΤϡ Ͽ Ĥ äƤ 硢 ̤ͣ Ƥ
뵭 ɬ ʤ Ȼפ ͤ 뤫 Ǥ
fml8 Ǥϡ ޤΤȤ ޤ
7. μԤ ѹ
fml4 Ǥ ޤ fml8 Ǥ ޤ
⤽ ̤ 줿 ̤ͣΥ С ΤʤΤ Ԥ ѹ
ȤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 18. إå ν
إå FML::Header 饹 Υ ֥ Ȥ˼ ޤ ʤ FML::Header
Mail::Header Ƥ ǡ Mail::Header Υ åɤϲ Ǥ Ѳ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. Subject: [elena:00100] Τ褦 ʥ
2. Subject: [elena:00100] ο ʬ(00100) η Ѥ
3. Subject: Υ ο (00100) 0 ѥǥ (strftime(3) )
4. Subject: Υ
5. Subject: Υ
6. Subject [ ] Ȥ
7. Reply-To: ɥ쥹 ˶ 롣
8. Reply-To: Ԥ ꤹ 롣
9. Reply-To: ̡ͣפ ꤹ 롣
10. ̥ͣ С ƤǤ Reply-To: ԡܣ̡ͣפ ꤹ 롣
11. To: Cc: fml8 ̤Υ ɥ쥹 Reply-To: ꤹ
롣
12. ʥإå ե X-Face:
13. Sender: X-Sender: ˥ ԡ 롣
14. Received: X-Received: ذ 롣
15. Υ Reply-To: ʤ Τޤޤˤ
16. To: Cc: Reply-To: Τޤ ̤ ˤ 롣
17. Message-ID: ϸ ͤΤޤ ̤
18. ML Message-ID:
19. X-ML-Info: Ƥ 롣
20. ȥ Reply-To: 롣
21. Υإå ̤
22. In-Reply-To: References:
23. ⤽ ⡢ å ߤ
1. Subject: [elena:00100] Τ褦 ʥ
ǥե Ǥϥ ϤĤ ޤ ޤ fml8 Ǥϡ sprintf ʤɤǻȤ (strftime
(3) ) ǻ ꤹ 뤳 ȤˤʤäƤ ޤ
[/var/spool/ml/elena/config.cf]
#
article_header_rewrite_rules += rewrite_article_subject_tag
# ο 7
article_subject_tag = [$ml_name:%05d]
2. Subject: [elena:00100] ο ʬ(00100) η Ѥ
fml8 Ǥϥ sprintf (strftime(3) ) ǻ ꤹ 뤳 ȤˤʤäƤ ޤ Ȥ У
%07 ʤɤȤ 褤 Ǥ
[/var/spool/ml/elena/config.cf]
#
article_header_rewrite_rules += rewrite_article_subject_tag
# ο 7
article_subject_tag = [$ml_name:%07d]
3. Subject: Υ ο (00100) 0 ѥǥ (strftime(3) )
[/var/spool/ml/elena/config.cf]
#
article_header_rewrite_rules += rewrite_article_subject_tag
article_subject_tag = [$ml_name:%d]
4. Subject: Υ
#
article_header_rewrite_rules += rewrite_article_subject_tag
article_subject_tag = [\U$ml_name\E:%05d]
( : ε ǽ ˤ 2002/10/29 ʹߤ snapshot äƤ )
5. Subject: Υ
Unix ϡ Ƥ ʸ Ȥ Τǡ ͣ ⾮ʸ 礦 顢 ϲ ⤷ ʤ Ƥ⾮
ʸ Ϥ Ǥ ǰ Τ ᡢ ʸ ʤ顢 Τ褦 ˤ Ƥ
#
article_header_rewrite_rules += rewrite_article_subject_tag
article_subject_tag = [\L$ml_name\E:%05d]
( : ε ǽ ˤ 2002/10/29 ʹߤ snapshot äƤ )
6. Subject [ ] Ȥ
[YYYYMMDD] (e.g. [20060101]) Τ褦 դ ʲ Τ褦 ˤ Ʋ
$distribute_verify_request_start_hook = q{
use POSIX;
my $yyyymmdd = strftime("[%Y%m%d]", localtime);
$config->set('article_subject_tag', $yyyymmdd);
};
ʤ strftime(3) Ǥ ͡ ʥե ޥåȤ Ǥ ޤ ܤ Unix ޥ˥奢 strftime(3)
Ȥ Ƥ
7. Reply-To: ɥ쥹 ˶ 롣
HOOK config.cf κǸ (=cut Ԥ ¦) ˽Ʋ
$article_header_rewrite_end_hook = q{
my $ml = $config->{ article_post_address };
$header->replace('Reply-To', $ml);
};
ʤ إå 롼 ʲ ɲä Ƥ Ȥ
article_header_rewrite_rules += rewrite_reply_to_enforce_article_post_address
8. Reply-To: Ԥ ꤹ 롣
HOOK config.cf κǸ (=cut Ԥ ¦) ˽Ʋ
$article_header_rewrite_end_hook = q{
my $cred = $curproc->credential();
my $sender = $cred->sender();
$header->replace('Reply-To', $sender);
};
9. Reply-To: ̡ͣפ ꤹ 롣
HOOK config.cf κǸ (=cut Ԥ ¦) ˽Ʋ
$article_header_rewrite_end_hook = q{
my $ml = $config->{ article_post_address };
my $cred = $curproc->credential();
my $sender = $cred->sender();
$header->replace('Reply-To', "$ml, $sender");
};
10. ̥ͣ С ƤǤ Reply-To: ԡܣ̡ͣפ ꤹ 롣
HOOK config.cf κǸ (=cut Ԥ ¦) ˽Ʋ
$article_header_rewrite_end_hook = q{
my $ml = $config->{ article_post_address };
my $cred = $curproc->credential();
my $sender = $cred->sender();
if ($cred->is_member($sender)) {
$curproc->log("member");
$header->replace('Reply-To', "$ml, $sender");
}
};
11. To: Cc: fml8 ̤Υ ɥ쥹 Reply-To: ꤹ
롣
ˤ ư 褦 鼫ʬ Τ ɥ쥹 Ȥ ȤǤ
إå ˽Ƥ ƤΥ ɥ쥹 ֿ ¿ Τǡ ä ư ͭ Ǥ 뤳 Ȥ
ϡ Ǥ HOOK Ǽ¸ Ǥ ޤ HOOK config.cf κǸ (=cut
Ԥ ¦) ˽Ʋ
$article_header_rewrite_end_hook = q{
my $to = $header->get('to');
my $cc = $header->get('cc');
my $addr = "$to, $cc";
use Mail::Address;
my (@addrlist) = Mail::Address->parse($addr);
my $reply_to = '';
for my $a (@addrlist) {
my $_addr = $a->address;
if ($curproc->is_fml8_managed_address($_addr)) {
$reply_to .= $reply_to ? ", $_addr" : $_addr;
}
}
$header->replace('Reply-To', $reply_to) if $reply_to;
};
12. ʥإå ե X-Face:
unsafe_header_fields += x-face
13. Sender: X-Sender: ˥ ԡ 롣
Ƥ 줿 Sender: X-Sender: ˥ ԡ Ƥ ޤ fml8
ɤ Sender: ѹ Ԥ Ȥ Ƥ⡢ ꥸ ʥ Ԥ ʬ ˤ Ȥ
ȤǤ
Ȥ Sender: ʤ ͤ⤤ ǡ ä Ƥ б Ǥ ޤ Sender:
ʤ From: X-Sender: ˥ ԡ Ƥ Ȥ ä ʸ ⤷
$article_header_rewrite_end_hook = q{
my $header = $curproc->article_message_header();
$header->add('X-Sender', $header->get('Sender'));
};
14. Received: X-Received: ذ 롣
X-Received: إ ԡ Received: ޤ
$article_header_rewrite_end_hook = q{
my $header = $curproc->article_message_header();
$header->add('X-Received', $header->get('Received'));
$header->delete('Received');
};
15. Υ Reply-To: ʤ Τޤޤˤ
config.cf
article_header_rewrite_rules -= rewrite_reply_to
Ȥ Ƥ
ǥե Ǥ Reply-To: Τʤ å Ф Reply-To: ѥ ɥ쥹 פ ä
$article_header_rewrite_rules ˤ rewrite_reply_to ̿ ˤ ޤ
ơ 롼 뤫 ޤ Reply-To: Ф 롼 뤬̵ ʤ Ȥ
櫓 Ǥ
16. To: Cc: Reply-To: Τޤ ̤ ˤ 롣
쥷 Ԥ Ǥ
To: Cc: ϸ ɤ Ǥ Τ config.cf
article_header_rewrite_rules -= rewrite_reply_to
Ȥ ǽ ʬ Ǥ
17. Message-ID: ϸ ͤΤޤ ̤
ǥե ε Ǥ Τǡ ʤˤ⤹ Ϥ
18. ML Message-ID:
פǤ Ǥ
[/var/spool/ml/elena/config.cf]
$article_header_rewrite_end_hook = q{
my $header = $curproc->article_message_header();
# Message-Id ( Ŭ Ǥ )
my $ml_name = $config->{ ml_name };
my $ml_domain = $config->{ ml_domain };
my $new_id = sprintf("%s-%d\@%s", $ml_name, $$, $ml_domain);
# X-Message-Id ˥ ꥸ ʥ Message-Id å åפ Ƥ
$header->add('X-Message-Id', $header->get('Message-Id'));
# Message-Id 촹
$header->replace('Message-Id', $new_id);
};
Ρ : ̤ͣ ӿ ǻϤ ͥ Ǥ
19. X-ML-Info: Ƥ 롣
褦 å ͤ ꤷ ޤ
$article_header_rewrite_end_hook = q{
my $header = $curproc->article_message_header();
$header->replace('X-ML-Info', "oresama id");
};
20. ȥ Reply-To: 롣
̤ ߤ fml8 Ǥ
outgoing_mail_header_reply_to = ɥ쥹
ȥ Reply-To: Ǥ Ǥ μ ְ Ƥ ޤ
_o_
( Ȥ Ǥ )
21. Υإå ̤
fml8 Ǥϡ Τ褦 HOOK Ǽ¸ 뤷
$article_header_rewrite_end_hook = q{
my $header = $curproc->article_message_header();
my (@tags) = $header->tags();
# إå ե
my (@valid_tags) = qw(to from reply-to subject date message-id);
for my $tag (@tags) {
my $valid = 0;
SCAN:
for my $v (@valid_tags) {
if ($tag =~ /^$v$/i) {
$valid = 1;
last SCAN;
}
}
unless ($valid) {
$header->delete($tag);
}
}
};
椷 ۤɡ פ 礦 ͤ ޤ
22. In-Reply-To: References:
ֿ Ǥ In-Reply-To: References: äƤ
¤ˤ ޤ ( ɾ ) ȡ Ĥ ꤬ ޤ
Υ ɴط ʬ ʤ Ǹ Ť餤 Ǥ ˡ 綠 ä ̵
( ʤ ) Τǡ ä ̤Υ ǤϤʤ SPAM ʤɤβ ⤤ Ȥߤʤ
ʲ Subject ֻ ( Re: ʤ ) ʤ In-Reply-To: ޤ References: إå
ʤ ʤ HOOK Ǥ
$article_post_verify_request_end_hook = q{
my $header = $curproc->incoming_message_header();
my $subject = $header->get('subject') || '';
my $in_reply_to = $header->get("In-Reply-To") || '';
my $references = $header->get("References") || '';
my $_subject = new Mail::Message::Subject $subject;
if ($_subject->has_reply_tag()) {
unless ($in_reply_to || $references) {
$curproc->log("reject invalid reply message");
$curproc->stop_this_process();
$curproc->policy_reject_this_message();
}
}
};
ݤ ݤΥ Ԥ Ƥ ޤ ⤷ 顼 Ԥ ֤ ñ 뤹 Ǥ
ʤ policy_reject_this_message policy_ignore_this_message ˤ Ƥ
23. ⤽ ⡢ å ߤ
use_article_header_rewrite no ˤ ƽ ǽ
[/var/spool/ml/elena/config.cf]
use_article_header_rewrite = no
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 19. ʸ ν
쥷 ԡ s
1. ʸ ˡ֢ פȰ ̾ʸ 줿
1. ʸ ˡ֢ פȰ ̾ʸ 줿
̤ͣϡְ ε ̤ͣμ פ 륵 ӥ Ǥ
̥ͣɥ饤 Фϰ ε ԤΥꥹ Ȥ MTA Ϥ Ѥͤޤ Τ ᡢ ε ۤʤ
Τˤ Ȥ Ǥ ޤ
ۤʤ ϰ ̤ ĥ 뤳 Ȥ Ѥ ޤ Σ̥ͣɥ饤
Ф Ǥ
Ȥ ꥹ Ȥδ fml8 ǹԤʤ Ȥˤϰ 뤫 ⤷
̤
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 20. ޥ γ
ǥ : help ޥ
elena ̤ͣ ȼ help ޥ 뤳 Ȥ ޤ
help ޥ ϡ Υ⥸ 塼 help.pm Ѱդ ơ ̥ͣ 饤 ֥ ѥ ؤ
OK Ǥ Ʊ ̾ Υ⥸ 塼 Ĥޤ ޥ ) Ǥ⡢ ѥ ˤ
äơ ȼ ⥸ 塼 ۤ Ȥ ޤ
⥸ 塼 ꥸ ʥ help.pm ͤˤ ơ help.pm ꡢ ʲ Υѥ ֤ Ƥ
: elena ̤ͣξ
/var/spool/ml/elena/local/lib/FML/Command/User/help.pm
⥸ 塼 ɤ ˤϡ local/ ѥ Υ⥸ 塼 뤬ͥ Τǡ help ޥ α
ˤϡ Υ⥸ 塼 help.pm Ȥ ޤ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│¾ Υե 뤫 饫 åȡ Ȥ ˤϡ package ˵ Ƥ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
ޥ
1. ޥ ɤ ֻ Reply-To: ǤϤʤ From:
2. help ʤɤΥ åץ 졼 ɤ
3. help θ ե ޥ 롣
4. confirmation ޥ
5. news Ȥ ե ֤ ޥ
6. mget ޥ Υե ɤΥǥե ѹ
7. get ޥ mget mp ˤ
8. command status report
9. ޥ 뤷
1. ޥ ɤ ֻ Reply-To: ǤϤʤ From:
ޥ (From:) ֻ Τ ǥե ε Ǥ
2. help ʤɤΥ åץ 졼 ɤ
fml8 åץ 졼 ɤ ưŪ ˥ åץ 졼 ɤ fml4 Ȱۤʤ fml8 Ǥ help ޥ Υ
ƥ 졼 Ȥϼ Τ褦 ʥѥ ߤ 뤫
/usr/local/share/fml/$VERSION/message/euc-jp/user/help
/usr/local/share/fml/$VERSION/message/us-ascii/user/help
̤ͣΥۡ 쥯 ȥ help ե 뤬 줬 help ޥ ֻ Ȥ
Ƥ ޤ help ե ʬ Ѱդ Ƥ 硢 ʬ Խ Ƥ
3. help θ ե ޥ 롣
fml8 Ǥ help ޥ Υ ƥ 졼 Ȥϼ Τ褦 ʥѥ ߤ ޤ Ƥ
ޤ Ȥ Τ С åפ ݤ ѹ ̵ ʤäƤ ޤ
ޤ
/usr/local/share/fml/$VERSION/message/euc-jp/user/help
/usr/local/share/fml/$VERSION/message/us-ascii/user/help
ͣ ȼ help ̥ͣۡ 쥯 ȥ ˡ local/share/message/ / פ
ꡢ β ˤ ʤ
[Example]
/var/spool/ml/elena/local/share/message/euc-jp/user/help
/var/spool/ml/elena/local/share/message/us-ascii/user/help
Υե 뤬 Ȥ ǡ С åפ Ƥ Ƥ Ѥ ޤ 줬 Ǥ
ʤ ̤ͣΥۡ 쥯 ȥ help ե 뤬 줬 help ޥ ֻ Ȥ Ƥ
ޤ (ͥ ) help ե ʬ Ѱդ Ƥ ʬ Խ Ƥ
ξ ⡢ Υե 뤬 Ȥ ǡ С åפ Ƥ Ƥ Ѥ ޤ С
åפ ǥե ȿ Ǥ ʤ Ȥ ޤ դ˸ С 줬
Ǥ
4. confirmation ޥ
help Υ ޥ Ǥ Τǡ 路 쥷 ԤȤ Ʋ
/usr/local/share/fml/$VERSION/message/euc-jp/command/confirm
/usr/local/share/fml/$VERSION/message/us-ascii/command/confirm
5. news Ȥ ե ֤ ޥ
Σ̤ͣκǿ ޤ $ml_home_dir/news Ȥ ե 뤬 ޤ 礦
̤ͣΥ С ʤ Ǥ ˤ ä ޤ
ִ ʺ help ޥ ͤ news ޥ 뤳 ȤǤ 礦 Ȥ
FML::Command::User::help ⥸ 塼 ( /usr/local/lib/fml/$VERSION/FML/Command/User/
help.pm ) ԡ FML::Command::User::news ( /usr/local/lib/fml/site_local/FML
/Command/User/news.pm ) ⥸ 塼 Ƥ ơ news.pm help Ȥ
ʸ news Ѥ Ǥ
[ ]
... ά ...
sub process
{
my ($self, $curproc, $command_args) = @_;
$self->send_user_xxx_message($curproc, $command_args, "news");
}
... ά ...
the Section called ǥ : help ޥ the Section
called ޥ γ : ޥ in Chapter 41 ⻲ Ȥ Ƥ
6. mget ޥ Υե ɤΥǥե ѹ
ޤΤȤ ޤ
ĤΤȤ get ޥ mget ޥ Ǥ ơ ޤΤȤ get ޥ
Υե ɤ ѹ Ǥ ޤ
7. get ޥ mget mp ˤ
fml8 Ǥϥǥե ǡ ΰ (MIME/Multipart ⡼ ) ˤʤäƤ ޤ
Τˤϡ get mget ޥ ǡ get ޥ Υե ɤ ( ޤΤȤ ) MIME
/Multipart
8. command status report
ޤΤȤ ե 륿 ˤĤ Ƥ off/on Ǥ ޤ ̤ˤϽ
9. ޥ 뤷
(1) perl Dzù 롣
(2) ޥ 뼫 Υ ԡ Ȥ롣 Ȥ С ޥ Ȥ Ȥ
ɲä Ƥ Ȥ ä Ǥ
elena-ctl: :include:/var/spool/ml/elena/include-ctl, elena-admin
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
admin ޥ
1. admin ޥ ǣ̤ͣκƽ
2. admin ޥ ǣ̤ͣΥ С ꥹ Ȥ ˺ / Ͽ
3. admin add welcome
4. admin add Ǥ 륢 ɥ쥹 ϰϤ ¤
5. ѤΥ ޥ 줿
1. admin ޥ ǣ̤ͣκƽ
ȤϽ makefml (CUI) Ԥ 븢 ¤Τ Dz
2. admin ޥ ǣ̤ͣΥ С ꥹ Ȥ ˺ / Ͽ
ޤΤȤ ʥ ޥ Ϻ Ƥʤ Τǡ admin useradd ɥ쥹 admin
userdel ɥ쥹 Ϣ ͤ _o_
뵤 Ϥ ͤ Ǥ
褦 ϡ֥ꥹ .xls ե ڤ äȤϤ פ
3. admin add welcome
̤
4. admin add Ǥ 륢 ɥ쥹 ϰϤ ¤
륢 ɥ쥹 Ϥ ¤ ޤ FML::Restriction::Base Ƥ
subscribe ʿͤ ɥᥤ ˸¤ꤿ Ȥ ä ǽ ( HOOK
н )
5. ѤΥ ޥ 줿
Ϥʤ ΤǤ Ƥ fml8 Υɥ ɤ :-)
http://www.fml.org/software/fml8/
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 21. ե 륿
쥷 ԡ s
1. ե 륿 ƥ Ȥ Υե 륿 ꤷ
2. Υ 륢 ɥ쥹
3. message/partial 륿
4. ź ե 뤬 Ĥ Ƥ ݤ HOOK
5. ե 륿 Ƥ ˡ 顼 ɤ ֤
6. spamassassin SPAM ̵ 뤹 롣
7. spamassassin SPAM Ƚ 顢 إå X-Spam-Status: Yes 롣
8. SPAM ơ To: Cc: ML ̾ ܤȤ
9. ͣ ȼ Message-ID: ƶ
1. ե 륿 ƥ Ȥ Υե 륿 ꤷ
fml8 Υե 륿 ƥ ʥե 륿
/usr/local/etc/fml//defaults/$VERSION/default_config.cf.ja
ɤ ʬ
ե 륿 Ǽ ʤ Υե 륿 article_post_verify_request_end_hook
article_filter_start_hook article_filter_end_hook article_post_run_start_hook
Τ Ť줫 HOOK Ǥ ʤ Ф褤 Ǥ 礦
$article_filter_start_hook = q{
my $header = $curproc->incoming_message_header();
my $body = $curproc->incoming_message_body();
if ( ) {
$curproc->policy_reject_this_message();
}
};
Τ褦 ˽ ɤ Ȥ ⤤ ޤ ե 륿 ν Ĥ Ƥϥ Τ䡢 ʲ Υ쥷 Ԥ⻲ Ȥ Ʋ
2. Υ 륢 ɥ쥹
Ȥ С Υɥᥤ (\S+\@example.co.jp) Ƶ ݤ 륿 Τ ȤǤ ¢ ե 륿 ΰ
Ƽ 褦 ȹͤ Ƥ ޤ ʤ _o_
3. message/partial 륿
mime component filter ǡ message/partial * reject פ ꤷ Ʋ
[/usr/local/etc/fml/mime_component_filter]
# allow only text/plain messages.
message/partial * reject
text/plain * permit
text/html * reject
multipart/* !text/plain reject
: Υե 륿 ̤ͣ Ǥ
4. ź ե 뤬 Ĥ Ƥ ݤ HOOK
fml8 ϡ 餫 줿 ˺ Mail::Message
֥ Ȥη ǻ Ƥ ޤ ǡ MIME/Multipart γ Υإå ơ ɽ
ǽ 褤 Ǥ
HOOK Ǥʤ / ޤ ϼ ̤ ɤ Ǥ⡢ ޥå
stop_this_process() ̿ ǡ ߤ ޤ ޤ ϲ ⥨ 顼
֤ Ȥ Ƥ ʤ ᡢ Ȥ ơ Υ 뤵 ʤäƤ ޤ
Ƥ ʤ顢 reply_message() ǡ Ƥ Ƥ
ä 륹 ʤɤβ ⤤ Τǡ ʤ ۤ Ǥ 礦
.exe ʤ ե ĥ Ҥ˥ޥå 뤫 ٤ 㡣 fml8 (2004/12/08 ) ʤ顢
$distribute_verify_request_start_hook = q{
my $msg = $curproc->incoming_message() || undef;
for (my $m = $msg; $m ; $m = $m->{ next } ) {
my $hs = $m->message_fields() || '';
if ($hs =~ /filename=.*\.(com|vbs|vbe|wsh|wse|js|exe|doc|rtf)/o) {
$curproc->log("attachment \.$1 found");
$curproc->stop_this_process();
}
}
};
2004/12/08 ʹߤ fml8 ʤ顢
$distribute_verify_request_start_hook = q{
my $msg = $curproc->incoming_message() || undef;
my $list = $msg->message_chain_as_array_ref();
for my $m (@$list) {
my $hs = $m->message_fields() || '';
if ($hs =~ /filename=.*\.(com|vbs|vbe|wsh|wse|js|exe|doc|rtf)/o) {
$curproc->log("[new] attachment \.$1 found");
$curproc->stop_this_process();
}
}
};
Ƥϡ
Content-Disposition: attachment;
Ȥ ɽ ˤʤ뤳 Ȥ ˡ Ƥ⤢
$distribute_verify_request_start_hook = q{
my $msg = $curproc->incoming_message() || undef;
for (my $m = $msg; $m ; $m = $m->{ next } ) {
my $hs = $m->message_fields() || '';
if ($hs =~ /Content-Disposition:.*attachment;/o) {
$curproc->log("attachment \.$1 found");
$curproc->stop_this_process();
}
}
};
2004/12/08 fml8 ʹߤʤ顢
$distribute_verify_request_start_hook = q{
my $msg = $curproc->incoming_message() || undef;
my $list = $msg->message_chain_as_array_ref();
for my $m (@$list) {
my $hs = $m->message_fields() || '';
if ($hs =~ /Content-Disposition:.*attachment;/o) {
$curproc->log("[new] attachment \.$1 found");
$curproc->stop_this_process();
}
}
};
5. ե 륿 Ƥ ˡ 顼 ɤ ֤
ǥե Ǥ
use_article_filter_reject_notice = yes
article_filter_reject_notice_recipient = maintainer sender
ȤʤäƤ ޤ Ĥޤꡢ (1) 顼 (yes) (2) ϣ̤ͣδ Ԥ
(maintainer sender) Ǥ
( From: Υ ɥ쥹 )" Τ " ˤ
article_filter_reject_notice_recipient = sender
Ȥ Ƥ
̤ͣδ ( From: Υ ɥ쥹 ) ֤ ˤ
article_filter_reject_notice_recipient = maintainer sender
Ȥ Ƥ
⤽ ⥨ 顼 ʤ 褦 ˤ ϡ
use_article_filter_reject_notice = no
Ȥ Ƥ
6. spamassassin SPAM ̵ 뤹 롣
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ ⤽ spamassassin Ӥ ¢ ե 륿 Ǥ ƻȤ Ǥ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
1. ¢ ե 륿
use_article_spam_filter = yes
article_spam_filter_drivers = spamassassin
2. Ʊ spamassassi ӽФ ΤǤ HOOK Ǥʤ / ޤ ϼ
̤
$distribute_verify_request_end_hook = q{
my $spamassassin = '/usr/pkg/bin/spamc -c';
use FileHandle;
my $wh = new FileHandle "| $spamassassin";
if (defined $wh) {
$wh->autoflush(1);
my $msg = $curproc->incoming_message();
$msg->print($wh);
$wh->close();
if ($?) {
$curproc->log("spam: (code = $?)");
$curproc->stop_this_process();
}
}
};
7. spamassassin SPAM Ƚ 顢 إå X-Spam-Status: Yes 롣
$distribute_verify_request_end_hook = q{
my $spamassassin = '/usr/pkg/bin/spamc -c';
use FileHandle;
my $wh = new FileHandle "| $spamassassin";
if (defined $wh) {
$wh->autoflush(1);
my $msg = $curproc->incoming_message();
$msg->print($wh);
$wh->close();
if ($?) {
$curproc->log("spam: (code = $?)");
my $hdr = $curproc->incoming_message_header();
$hdr->add('X-Spam-Status', 'Yes');
}
}
};
ȥȥ Ǥ ư ޤ
8. SPAM ơ To: Cc: ML ̾ ܤȤ
HOOK ǹԤʤ ʤ鼡 Τ褦 ˤʤ
$article_filter_end_hook = q{
my $header = $curproc->incoming_message_header();
my $addr = $config->{ article_post_address };
my $to = $header->get('To') || '';
my $cc = $header->get('Cc') || '';
my $to_cc = "$to, $cc";
my $found = 0;
use Mail::Address;
my (@addrlist) = Mail::Address->parse($to_cc);
for my $a (@addrlist) {
my $_addr = $a->address();
if ($_addr =~ /^$addr$/i) {
$found = 1;
}
}
if ($found) {
$curproc->log("article_post_address found in header");
}
else {
$curproc->log("article_post_address not found in header");
$curproc->policy_reject_this_message();
}
};
9. ͣ ȼ Message-ID: ƶ
̤
HOOK Ǥʤ 뤳 ȤϽ ֵ ML Message-ID: Ȥ
쥷 ԤȤ Ʋ
fml4 Ǥ In-Reply-To: References: Ƥ MUA 뤿
ɤ ޤ ʤ פȤ 褹 뤿 ͣ ȼ Message-ID: ƶ
ǽ Ǥϡ ä MUA 䤨 Ǥ 礦 fml8 ǤϹ
ʤ Ȥˤ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 22. γ
ǥ : ͣ ȼ Υ
elena ML (ML Υۡ ब /var/spool/ml/elena) ξ
/var/spool/ml/elena/local/share/message/euc-jp/ 饹
˥ե Ĥ äƲ
줬 Υƥ 졼 ȤǤ ե ޥåȤ /usr/local/fml/share/fml/
β ͤˡ ԡ Ȥ Խ Ƥ
: ƴؿ Ǥ _arg_ ͤ ϥå ؿ ޤ
ơ Ǥϡ $_arg_ פȤ 줿
ϥå ִ ֤ Ǥ
ʤ ƥ 졼 ϡ config.cf ѤǤ (e.g. $ml_name ) Ȥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 23. WWW ǣ̤ͣε
ǥե fml8 ϥ桼 fml θĿ ΰ
~fml/public_html/fml/mlarchive/ ɥᥤ / ͣ /
ʲ ˵ HTML Ƥ ޤ
WWW Ф ̤ͣε ޤ Ŀͥǥ 쥯 ȥ
apache suexec ꡢ Υǥ 쥯 ȥ ꡢ 褷 ʤ ꤷ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. HTML 줿 ʤ
2. HTML 줿 URL ~fml
3. 椫 html ʤä
4. HTML ( ) ˤϡ
5. HTML WWW Ф fml8 Υ Ф 㤦 ΤǤ
1. HTML 줿 ʤ
apache suexec ݡ Ȥ 뵡ǽ ʤ ~fml/public_html/ ʲ ϥ ͥåȤ 鸫 ʤ
Ϥ ʤΤǡ ǥե Ǥ Ȥ ⤤ ޤ
Ǥ⡢ ⤽ HTML ǽ Ǥ
[config.cf]
use_html_archive = no
2. HTML 줿 URL ~fml
apache Alias
Alias /mlarchive/ "/home/fml/public_html/"
Ȥ OK Ȼפ ΤǤ ܤǤ 礦
3. 椫 html ʤä
Ϥ ᤫ HTML 줿 Ѱդ ޤ ⤽ ե HTML
ǡ HTML ǽ Ƥ ʤ 뤿 WWW Ф ѹ
Ǥ
HTML Ƥ ơ դ ʤä Ǥ ξ
fmlhtmlify ޥ ǵ HTML 뤳 Ȥ Ǥ ޤ
% fmlhtmlify 쥯 ȥ HTML ֤ ǥ 쥯 ȥ
% fmlhtmlify /var/spool/ml/elena/spool ~fml/public/fml/mlarchive/ ɥᥤ / ͣ
4. HTML ( ) ˤϡ
fmlhtmlify ޥ äƲ
% fmlhtmlify 쥯 ȥ HTML ֤ ǥ 쥯 ȥ
% rm -fr ~fml/public/fml/mlarchive/ ɥᥤ / ͣ
% fmlhtmlify /var/spool/ml/elena/spool ~fml/public/fml/mlarchive/ ɥᥤ / ͣ
5. HTML WWW Ф fml8 Υ Ф 㤦 ΤǤ
1 Ū ˵ ž 뤳 ȤǤ
% rsync -av ~fml/public/fml/mlarchive/ ɥᥤ / ͣ ¾ Υޥ :/ ѥ /
rsync over ssh Ǽ¹Ԥ ϡ ssh ꤬ɬ Ǥ Τ Ʋ
2 Υޥ ¦ HTML Ԥ 륳 ޥ ( Ȥ mhonarc) ݤ Ƥ Ȥ
Ǥ
3 Ȥ WWW ФΥե 륷 ƥ ͥåȥ ˥ ⤢ ꤨ ޤ ե
륷 ƥब ͥåȤ 鸫 åȥ Ͽ侩 ʤ Ȥ ͥåȥ ǥ
߷פ Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 24. ̤ͣ äζ ( ) (Thread Tracking System ?)
fml8 ˴ Ԥ ֣̤ͣΥ ɤޤȤ 餤 ߤ ʤ Ȥ Τ
Ƥ С knowledge database Τ褦 ʤ Ǥ
Ĥޤ Ǥ 뤫 ˥ Ǥ :-) knowledge ǡ ١ åȥ
ƥ Ȥ Ȳ ߤΥ ƥ ˤʤäƤ ޤ Ǥ Τ ߤ
( ĿͤǻȤ ʤ Ȥ ʤ )
ȥ١ ʤ ϱ ١ ǹͤ 顢 ϡ ΤѤ :) thread
tracking system ǥΥ ϥ ߡ ʬ ȿ ˵ Ƥ ѷ 뤳 ȤǤ
äơ Ϥ Ŭ knowledge base ticket system /
뤳 Ȥ Ǥ ޤ ǽ ʬͭ Ȥ ⤢ ꤨ ޤ :D
Problem Report System ΤޤȤ ˤĤ Ƥ Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ͣξ
ä ̤ͣ ̤Ȥ ơ Ƥ ξ ֣̤ͣ˥ Τϡ ֤ 褷
Ȥ ֤ 뤱 ɲ ˡ ʬ Τꤿ Ȥ ȤǤ äơ ΰ
problem report Ȥ ޤ ơ ƥե åפ ʤ 졢 줿
ꡢ ̤ Τޤ ֤ 줿 ꤹ 뤳 Ȥˤʤ
벽
open 뤬 Ƥ 줿
ï 顢
closed Ĥ Ʋ 줿 줿
open
ե åע
Ƚ closed
֤ פ ϡ ư Ǥ ޤ ٤Ͽʹ֤ ʤ Ǥ 礦
餯Ƚ Υ 졼 ʤ Ǥ̿
Ǥ 餤 [17] Ȥ ï ( ʹ ) Ƚ Ǥ οͤ
оݤΣ̤ͣǤβ ä ƤˤĤ ơ ٤ Ƥ ⤢
Ƶۤ ä ä Ǥ 褤 ΤǤ ɴ ǤϤ
Ȥ ʥ ɡֽ λ Ȥ ޤ ʤɤ 뤳 ȤϤǤ ʤ Ϥʤ Ǥ
礦 TODO Ǥ
λ Ρ Ū ʡץ ڥ졼 WWW Ԥʤ Ȥ ꤷ Ƥ ޤ Ĥޤ 饦 ξ
뤫 subject ˽ λ ̣ 륭 ɤ ळ ȤǹԤʤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[ ?] fml8 (minimal_states ) åȥ ƥ
open ... å ֹ ޤʤ 뤬 Ƥ 줿 ưŪ open
going ... ï 顢
closed ... close ʤ 줿 顢
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
close ϰʲ Τ 줫 μ¹ԤΤϤ
(1) Subject: close ǤϤ ޤ롣
(2) ι close ǤϤ ޤ롣
Ƭ ζ ̵ 뤵 ɽ Ǥ \s*close Ǥ multipart ϡ ǽ
text/plain ѡ Ȥι close ǻϤޤ
(3) å X-Ticket-Pragma: close ꤵ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ʥإå
X-Ticket-Pragma: ignore
˥ åȤ ޤ ٤ƤΥ åȤ˴ؤ ޤ
X-Ticket-Pragma: close
åȤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ɥ ƥ ǡ ١
ʲ Τ褦 ʥǡ ١ ɥ ƥ ǡ ١ Ϲ ޤ
ե
----------------------------------------------
status open / close
ml_name elena
article_id 100
thread_id elena/100
from إå From: ( ɥ쥹 η )
sender إå Sender: ( ɥ쥹 η )
x_sender إå X-Sender: ( ɥ쥹 η )
Ȥ С BSD status.db Ȥ ä .db Υե 뷲 Υ åȤȤʤ Ǥ
Υե 뷲 ϳƣ̤ͣΥۡ 쥯 ȥ Ϥʤ
$ml_home_prefix/@db@/ ͣ /
/var/spool/ml/@db@/ ͣ /
Ȥ ǥ 쥯 ȥ ޤ ( Υɥᥤ [18] ˤ ) ̤ͣ
˻ Ȥ ޤ Ȥ support/100 ε sales/98 ȯ
Ȥ Ƥ Ȥ ä ưŪ ˣ̤ͣ 뵡ǽ 뤿 ( ʤ 顢 ߤΤȤ ̤
)
ɥǡ ١ ϡ article_id thread_id primary key ˤ Ƥ ޤ
˽Ȱʲ Τ褦 ˤʤ
[thread .db]
aritcle_id => thread_id
[article .db]
thread_id => article_ids
Example: elena/100 => 100 101 103 105
[date .db]
aritcle_id => unix_time
[sender .db]
article_id => from
[message_id .db]
mesasge_id => thread_id
[status .db]
thread_id => status
[index .db]
thread_id => "$ml_name " *
Example: support/100 => support sales
IV.
Table of Contents
25. μ谷
26. ΥХå å
27.
28. Фΰ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 25. μ谷
% makefml log ͣ
% fml ͣ log
ǡ Ƕ ( ǥե Ǥ 30 ) ɽ
GUI 뤳 Ȥ Ǥ ( Ǥ log ޥ Ԥ Ƥ ޤ )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Υ
ʬ ǥ ֥ ե ʤɤ ꤳ ߤ ˤϡ Τ褦 ѤǤ ޤ
Ȥ fml8 ʳ ̤Υ ޥ ȼ CGI ʤɤ fml8 CUI Ӥ
ޤ ξ STDERR ʤɤ fml8 Ȥꤿ Ǥ 礦
Τ褦 ʻ ϡ
% makefml --log-computer-output ޥ ͣ
% fml --log-computer-output ͣ ޥ
Ȥ ޥ η ɸ ( STDOUT ) ء STDERR ؽ Ϥ
Ȥ м Τ褦 ʵ ˤʤ
% fml --log-computer-output elena@fml.org list
rudo@nuinui.net
1070109341 info lock channel=recipient_map_modify
1070109342 info unlock channel=recipient_map_modify
ǥե ˤǤϡ ֻ (unix time) Υ (info,warning,error ʤ )
ȤʤäƤ ޤ
ޥ 饤 ץ --log-computer-output ϡ config.cf ʤɤ
use_log_computer_output = yes
Ȼ ꤹ 뤳 ȤǤ Ȥʤ
ʤ 顢 ѿ yes ˤ makefml fml Ǥʤ 䥳 ޥ
ץ STDERR ˥ ˤʤ դ Ƥ
Υ 塼 ե ޥåȤϡ Perl ⥸ 塼 ʤ ˲
Υ⥸ 塼 ( ǥե FML::Log::Print::Simple) config.cf
log_computer_output_engine ѿ Ȥ ѹ Ǥ Ϥ ؤ ϡ ʬ
Υ⥸ 塼 Υ⥸ 塼 ѿ ꤷ Ƥ ⥸ 塼
FML::Log::Print::Simple ͤˡ hack ƤߤƤ :)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. fml Υ 顼
2. Ť
3. ˽
4. Ԥ
5. Υ ԡ ĸ ĥ ꡢ ĥ 顼 Ԥ
6. Ť ե õ
1. fml Υ 顼
fml4 daily.pl ˤ Τ
ϥ ե grep Ƥ
2. Ť
fml8 Υǥե Ǥϡ ̤ͣΥۡ 쥯 ȥ ե Ҥ ޤ
̤ͣ Ϥޤä Ͽ ٤Ƥ ˤ
Unix Υ ϰ ָ äƤ ޤ Τǡ ޤ ɤ ޤ
Unix Ǥϡ newsyslog ʤ (OS ˤ ƻ Ȥߤϰۤʤ ) OS ° Υ ƥब Ť ξõ
Ƥޤ 餫 ᡢ Υѥ ٤ ˤ Ƥ ޤ 礦
3. ˽
Unix Ǥ syslog Ȥ ᥫ ˥ Ƥ ޤ syslogd Ȥä
/etc/syslog.conf ˽ ե ν ߤ ۥ Ȥؤ ʤ
[/etc/syslog.conf]
# ٤ƤΥ /var/log/messages ؽ Ϥ
*.* /var/log/messages
fml8 Υ ϥǥե Ǥϡ ƣ̤ͣΥۡ 쥯 ȥ ե ޤ syslog
ؽ Ϥ 뤳 Ȥ ޤ
[/var/spool/ml/elena/config.cf]
log_type = syslog
Ρ Ƥ syslog /var/log/messages ˡ ƥ ƤΥ
fml Υ Ȥ 褦 ˤʤ
4. Ԥ
fml8 Unix ޥ λȤ äǤ
ѥ ˥ޥå å ʤ鼡 Τ褦 ˤ ޤ
% tail -F /var/spool/ml/elena/log | grep ' ѥ '
5. Υ ԡ ĸ ĥ ꡢ ĥ 顼 Ԥ
fml8 Unix ޥ λȤ äǤ
% tail -F /var/spool/ml/elena/log | grep ' ѥ ' | tee ե
6. Ť ե õ
fml4 newsyslog ǽ Τ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 26. ΥХå å
fml8 ؤ Ƥϡ ( Ǿ ǣ ) Υǥ 쥯 ȥ å åפ ʬ Ǥ
/usr/local/etc/fml/
$ml_home_prefix ( Ȥ /var/spool/ml/ ɥᥤ Ȥ˰ۤʤ )
Ƥ å åפ ե ɤ Τ ޤޤ
ʤ Ʋ
ޤ MTA Хå åפ Ƥ Ȥ褤 Ǥ 礦 Postfix ʤ /etc/postfix Ǥ
ޤȤ ȡ Σ ( Τˤϣ fml8 ɳ Ƥ ᥤ ) Υǥ 쥯 ȥ꤬ Хå å
оݤȤ Ȥˤʤ
/etc/postfix/
/usr/local/etc/fml/
$ml_home_prefix ( Ȥ /var/spool/ml/ ɥᥤ Ȥ˰ۤʤ )
ʲ ⤦ ܤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Хå åפ
fml8 ؤ Ƥϡ Σ ĤΥǥ 쥯 ȥ Υե Хå åפ Ƥ ɤ ΤǤ
ȵ ե ɤ Τ ޤޤ ǡ ʤ
/usr/local/etc/fml/
$ml_home_prefix ( Ȥ /var/spool/ml/ ɥᥤ Ȥ˰ۤʤ )
ǥ ΰ¤ Ǥϡ ⵤ ˤ γ Хå åפ Ƥ Ф褤 Ȼפ ޤ ʤ
륷 ƥ Хå åפ Ƥ Τ Ȼפ ޤ
ʤ 顢 Ǥ Ȥ ˤϡ Υǥ 쥯 ȥ ̵ 뤷 ƥХå
åפ 뤫 ʲ γƥե ̤˥Хå åפ Ƥ 褦 ˤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե Хå å
̤˥Хå åפ 褦 Ȥ 빽 ɤ Ǥ ե ̾ 롼 ݤ
ϳڤˤʤ
ޤ fml8 Ǥϡ ե .cf Ĥ Ƥ 뤬 ե Τˤ
key = value
η Υե
/usr/local/etc/fml/main.cf
/usr/local/etc/fml/site_default_config.cf
/ ̤ͣΥۡ 쥯 ȥ /config.cf
ʤɤ
ޤ ʳ ˤ⡢ å ΰۤʤ
/usr/local/etc/fml/mime_component_filter
/usr/local/etc/fml/ml_home_prefix
ʤɤΥե 뤬 Υե ϶
/usr/local/etc/fml/ ʲ ˡ ե ɤϤ ǡ /usr/local/etc
/fml/ ϡ Хå åפ Ƥ ɤ Ȼפ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
С ꥹ ȤΥХå å
ʤɤΥ 륢 ɥ쥹 Υꥹ Ȥ
/ ̤ͣΥۡ 쥯 ȥ /members*
/ ̤ͣΥۡ 쥯 ȥ /recipients*
Ǥ recipients members ե 뤬ա פ Ƥ ޤ ӤǤ
members- Τ褦 ˳ Ҥ Ĥ Ƥ ޤ Τ ᡢmembers* recipients* å
åפ оݤˤ Ƥ
ʤ ȴ Ȥ ѥ ɥե
/ ̤ͣΥۡ 쥯 ȥ /etc/passwd-
Ǥ etc/ ʲ å åפ ޤ 礦
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Хå åפ : Υǥ 쥯 ȥ
ݤ ꡢ ʲ Υǥ 쥯 ȥ Ƥ å åפ ڤǤ
spool
tmp ֥ե
var Ƽ ǡ
rsync ǥХå åפ 顢 --exclude ץ ʤɤǡ Υ åȤ
ȳڤ Ǥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. ե С
1. ե С
ޤ fml8 ư cvs ˤʤäƤ ޤ ǡ Ȥ ɤ ǹԤʤäƲ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 27.
̤
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. ס ̤
2. ס ư Ǿä
3. ǥ ֤ ꤿ
4. ֤ 鵭 get ޥ Ǽ Ф
5. ֤ get
1. ס ̤
̤
2. ס ư Ǿä
̤
3. ǥ ֤ ꤿ
ֵ ǽ
4. ֤ 鵭 get ޥ Ǽ Ф
ֵ ǽ
5. ֤ get
ֵ ǽ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 28. Фΰ
ǥ : FML.ORG дְ ⻲ ͤˤ ƤߤƲ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. 륵 Ф ۤ ޤ IP ɥ쥹 ѹ ˴ط Τ fml8 Υե
1. 륵 Ф ۤ ޤ IP ɥ쥹 ѹ ˴ط Τ fml8 Υե
V. ȥ 륷 塼 ƥ
ѡ ȤǤϥȥ 륷 塼 ƥ äƤ ޤ
Table of Contents
29. ȥ 륷 塼 ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 29. ȥ 륷 塼 ƥ
쥷 ԡ s
1. ȤäƤ fml ΥС ꤿ
2. Postfix ΥС ꤿ
3. Sendmail ΥС ꤿ
4. qmail ΥС ꤿ
5. 륢 ɥ쥹
6. alias
7. Ƥ ̤٤
8. fml ȡ 뤷 ۥ Ⱦ夫 Ǥ ʤ
9. CGI ǣ̤ͣ 륵 Ф Ǥ ʤ
10. ˼ ư Ǻ
11. 뤬
12. οͤ ʤ
13. ̤ͣΥ С Ǥʤ ɥ쥹 饨 顼 뤬
14. aliases fml ѹ 2 ˤʤä
15. flock ư ʤ OS ʤΤǤ
16. ֹ椬 ˤ äƤ ޤä
17. ְ㤨 ƾä Ƥ ޤä
18. ǥ ˾ä Ƥ褤 ե
19. Reply-To: Ĥ Ƥ ʤ 褦 Ǥ
20. Ԥɤ ʤ 褦 Ǥ
21. References: In-Reply-To: Ĥ Ƥ ޤ
22. ǥ ɤ ɽ Ǥ ޤ
23. ̤ͣμԤΤ ͤ ʸ 뤽 Ǥ
24. ɤ Ƥ ISO-2022-JP Ƥ ʤ ͤ ޤ
25. Ԥ 줬 Ķ ˤ
26. Ⱦ 뤬 Ƥ 餽
27. help ʸ Ƥ ޤ
28. get Ǥ ʤ
29. get ish ⡼ ɤʤɤ ư ʤ
30. subscribe 褦 Ȥ ̵ 뤵 褦 Ǥ
31. ' ॢ ɥ쥹 ޤ ʤ
32. "xxx"@yyy.or.jp Ȥ ɥ쥹 Ȥ ޤ subscribe Ǥ ޤ
1. ȤäƤ fml ΥС ꤿ
fmlconf ޥ ƣ̤ͣ ѿ Ƥ ɤΣͣ ( ¤ΤȤ ʣ̤ͣǤ褤)
Ƥ ޤ ޤ ǡ fmlconf Ԥ Ʋ Ȥ
% /usr/local/bin/fmlconf test |grep fml_version
fml_version = fml-devel current-20021029
2. Postfix ΥС ꤿ
% postconf mail_version
3. Sendmail ΥС ꤿ
% echo '$v' | sendmail -bt
4. qmail ΥС ꤿ
ϡ ֤ 1.03 + 褯ʬ ѥå Ǥ ȡ 뤷 ͤʤꡢ Ȥä ѥå ƥ
ޤ 뤫 Ƥ
ߤ ޤ DJB ϡ֥ѥå Ƥ פȤ ʤ ʸ ʤΤǤ 礦 ʤ Ǥ
5. 륢 ɥ쥹
fmladdr ޥ /etc/passwd aliases ե
ɥ쥹 Ƥ
% /usr/local/bin/fmladdr
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fmladdr ޥ fmlalias ޥ ΰ㤤 ϡ 桼 ( /etc/passwd │
│ ) फ Ȥ Ǥ fmladdr ϴޤߤޤ fmlalias ϴޤߤޤ │
│fmlalias Ͻ alias ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
6. alias
fmlalias ޥ aliases ե ( ) ꤵ ɥ쥹 Ƥ
% /usr/local/bin/fmlalias
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fmladdr ޥ fmlalias ޥ ΰ㤤 ϡ 桼 ( /etc/passwd │
│ ) फ Ȥ Ǥ fmladdr ϴޤߤޤ fmlalias ϴޤߤޤ │
│fmlalias Ͻ alias ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
7. Ƥ ̤٤
grep ޥ פȸ Ȥ grep Ǥϡ ޤ ޤ Ȥ
Τϡ С ꥹ Ȥ ե Ȥϸ¤ Τǡ ٤ƽ Ϥ Ƥ grep Ƥߤʤ Ȥ狼
Ȥ (Unix 餷 )
% /usr/local/bin/fml ̥ͣ ɥ쥹 list | grep ɥ쥹
̤ͣˤĤ Ʒ ֤ Ȥ Ƥ
ޤ Ҥ Ԥ ΤǤ 륹 Ȥˤ 褤 Ǥ 衣
8. fml ȡ 뤷 ۥ Ⱦ夫 Ǥ ʤ
(1) fml8 Υե 륿 Ƥ ǽ fml8 Υ Ʋ Mail
ޥ MIME إå ޤ ǡ fml8 Ǥ ʥ ߤʤ ( : ǥե
fml4 Ǥϡ ޤǸ Ƥʤ Τǥ 顼 ˤʤ ä Ϥ Ǥ )
(2) ޤǤ ⤷ Σ̥ͣ ФΥۥ Ȥξ夫 顼 ˤʤ뤳
Ȥ
[ ޥ ]
% echo test |Mail -s test elena@example.org
ä ˤ Դ ʾ Ϳ Ƥ ޤ 顢 Mail ޥ
( ⤷ Mail ޥ 줿 MTA ) ܤǤ ä
ˤϡ From: ֥桼 פ Ȥ ֥桼 FQDN פ ä ꤷ ޤ ֥桼
ɥᥤ η 褦 ˤʤäƤ ʤ fml8 Ȥ Ƥ ʥ桼 ˸ ޤ ( ƥե
륿 Ƥ )
ɥᥤ Ĥ 褦 MTA ľ Ʋ
9. CGI ǣ̤ͣ 륵 Ф Ǥ ʤ
ƤߤƲ
ޤ WWW ˽ Ϥ ǧ Ʋ fml 顼
Ͽ ǽ
:
/usr/local/apache/logs/error_log
/usr/local/apache/logs/suexec_log
/var/spool/ml ʲ ǧ Ƥߤޤ 礦 ̤ͣΥۡ 쥯 ȥꤹ Ƥ ʤ ʤ ( Σ̤ͣΥ ե
뤬 ) WWW Фν Dz Ǥ ޤ WWW ФΥ
ե Ϥ
Ⱦü ˣ̤ͣ åȥ åפ ( Ȥ Хۡ 쥯 ȥ 뤬 aliases Ǥ
ʤ ) ˤϡ fml Υ ե ( : /var/spool/ml/elena/log) ƤߤƲ
10. ˼ ư Ǻ
MTA ֤Ǥκ 顼 MTA ޤ Sendmail Ū ʥѥ Ǥ
Τǡ ָ Ϻ MTA ¿ Ȼפ ޤ
fml8 MTA ֤ǥ 顼 fml8 Υ 륭 塼 ꡢ fml8 MTA ؤκ
ޤ fml8 MTA Ǥ
ߥϼ fml8 β 餫 Υץ ư 줿 Ǥ Τ ᣵʬ ɤȳ
ʬ Ȥ˺ ˤϡ cron makefml ML flush Ԥ
ˤ ƤߤƤ
: Chapter 35 ⻲ Ȥ Ƥ
11. 뤬
the Section called Ʊ 뤬 Ȥ Ƥ
12. οͤ ʤ
the Section called Ʊ 뤬 Ȥ Ƥ
13. ̤ͣΥ С Ǥʤ ɥ쥹 饨 顼 뤬
(1) ̤ͣμԤ ž Ƥ 饨 顼 뤬 ֤äƤ
ǽ
(2) SPAM
14. aliases fml ѹ 2 ˤʤä
Х ǤϤʤ MTA λ ;塢 ʤ ǽ
Ȥ aliases Τ褦 ˤʤäƤ Ȥ ޤ
elena: rudo, kenken, hitomi
aliases Σ̤ͣ
From: rudo
To: elena
Cc: rudo
test
Ȥ Ƥ Ȥ rudo ˤϰ Ϥ Ǥ MTA elena ̤ͣμԤ rudo
ν ʬ Ƥ ޤ
elena ̤ͣ fml ѹ MTA ˤ θ ʤ ʤ Τ ᡢ
elena ̷ͣ rudo ˤȤɤ ʬ rudo Σ Ĥˤʤ 櫓 Ǥ
15. flock ư ʤ OS ʤΤǤ
fml8 flock(2) ɬ ܤǤ Τǡ fml8 ޤ ( ֤ ˤʤ )
flock(2) Ȥ äƤ⡢ ºݤˤ Perl Fnctl ⥸ 塼 ȤäƤ ơ Υ⥸ 塼 뤬 OS
Ȥκ ۤ ޤ ޤ fcntl(2) POSIX.1 Ǥ Τǡ 줬ư ʤ OS ϡ
Ѥ OS Ǥ
16. ֹ椬 ˤ äƤ ޤä
fml4 Ȱۤʤ fml8 Ǥϡ Ȥϵ 褦 ˺ Ƥ ֹ椬 åץǡ ȤǤ
ʤ ʤ顢 ⤽ fml8 ν ߤޤ ˤʤäƤ ޤ
Υ å äƵ ǽ 뤫 ⤷ ºݤˤ ݤ Ƥߤʤ Ȥ
褯 狼
fml8 ѵץ ߥ Ǥ ޤ å Ƥ ޤ
ޤΤȤ פȿ Ƥ ޤ
17. ְ㤨 ƾä Ƥ ޤä
ְִ㤨 makefml rmml Ԥ Ƥ ޤä פȤ Ȥʤ顢 reviveml ޥ Ǥ ޤ
ְִ㤨 rm -fr Ƥ ޤä פȤ Ȥʤ顢 fml8 Ǥϼ ư ǥХå åפʤɤ Ƥʤ Τ Ǥļ
ä ߥ ڥ졼 β ơ Ĥͤ Хå å äƤ ٤ Ǥ
줬 ֱ פȤ ȤǤ
18. ǥ ˾ä Ƥ褤 ե
˾ä ΰ ۤȤ
Ƥ С ͤ ᵭϿ Ƥ 뤪 夯 餤 Ǥ
ƣ̤ͣΥۡ var/mail/incoming var/mail/outgoing Ǥ ޤ Υ
Ǥ log Ȥ Ƥ⤢ ޤꤪ ޤ
ǥХå ʤΤǡ ޤꤪ ޤ ä ˤ⡢¾ Υޥ Хå åפ
ä Ⱦä Ƥ
19. Reply-To: Ĥ Ƥ ʤ 褦 Ǥ
ˤĤ Ƥ Ϥ ǡ 顼 Ǥⲿ Ǥ⤢
ޤ ֤Ĥ Ƥ ʤ פȤ ǧ ۤ 褤 Ǥ 礦 ɽ Ƥ ʤ ⤷
ξ ϡ å ٤ ꤷ Ƥ 褦 ˤ
Ʋ
ʤ ǥե Ǥ fml8 Reply-To: Ĥ Ƥ ޤ ˤϡ ⤷
ꥹ Ȥ 줿 Reply-To: ꤬ ä ϡ Τޤ Reply-To:
Ĥ Ƥ ޤ ⤷ Υ Reply-To: ʤ ʤ fml8 Ŭ ʤ ޤ Ȥ С
ѤΥ ɥ쥹 ޥ ޥ ɥ쥹 Ǥ
fml8 Reply-To: ʤ 褦 ꤷ Ƥ ʤ ޤ Υ
Reply-To: ʤ Τޤ Reply-To: Τʤ 뤬
20. Ԥɤ ʤ 褦 Ǥ
ޤ ֿ פȤϲ Τ ȤäƤ ǧ ޤ 礦
餯 ֥ ǡ ֿ ٤ ݤˡ ɽ 줿 Ԥɤ ʤ
ä Ȥ ȤäƤ ȤϤ ⤤ ޤ
դĤ Υƥ 졼 Ȥ ϸ Reply-To: ⤷ From: Ȥ Ƥ
Ǥ Dzù ʤ إå ơ ɤ ʤäƤ 뤫 ǧ Ƥ äƲ
ʤ Reply-To: ˤĤ Ƥ 쥷 ԤȤ Ʋ
21. References: In-Reply-To: Ĥ Ƥ ޤ
Υ Ĥ Ƥ ʤ Τ ԤΥ Ĥ Ƥ ʤ Ȥ Ȥˤʤ
ɤ ˤ
fml8 References: In-Reply-To: ˤĤ Ƥʤˤ⤷ ޤ ɤ Ǥ
22. ǥ ɤ ɽ Ǥ ޤ
fml8 Ϥ Υإå ե Ф Ʋ ⤷ ޤ Υ In-Reply-To:
References: ʤ ͤ ޤ
쥷 Ԥ⻲ Ȥ Ʋ
23. ̤ͣμԤΤ ͤ ʸ 뤽 Ǥ
fml8 ꤬ ǽ ⤢ ͤ ʸ Ǥ οͤ
Υ
Υ 뤬 ͤ Ȥ ( Ȥ Хޥ ե
桼 οͤ Ǥ ޤ ߹ ; ȹ ) ⤢ ꤦ ǡ 쳵
ɤ Ȥ ޤ
24. ɤ Ƥ ISO-2022-JP Ƥ ʤ ͤ ޤ
MIME إå ƥ äƤ ޤ Τǡ Ǥ Ȥ ¿
ʤäƤ ޤä ⤷
̵ fml8 ¦ Ѵ Ǥ ʤ 櫓 ǤϤ Ȥ ʤ ǡ ۤ
Ǥ 礦 ˤ ޤ Ǥ
25. Ԥ 줬 Ķ ˤ
ȤǤ 礦 ä ɤ 礦 ⤢ ֥ ɤ ⤤
Ǥ ɤ Τ fml8 Dz 뤳 Ȥ Ǥ 礦
gmail (gmail.com) Υ Ǥ äƤ פ ޤ
ƥ ݥꥷ Թ gmail Ȥ ʤ ʤɤξ ϡ ɤ Υץ Υ 륢
Ƥ äƤ / 礦 顣
26. Ⱦ 뤬 Ƥ 餽
̤ [19]
27. help ʸ Ƥ ޤ
fml8 Ǥ ISO-2022-JP Ѵ Ƥ Ƥ ޤ إå ˤ Content-Type:
Ƥ ޤ
ʤ顢 ν Ԥʤ ⥸ 塼 뤬 ޤ ư Ƥ ʤ إå γ
ȡ Υ ʸ ɤγ ƤߤƤ
ޤ Υإ ե إ ꥬ ˤʤä ޥ äƤ
ʬ Ȼפ ޤ
28. get Ǥ ʤ
줿 顼 ե ƤߤƲ
no such file Ȥ get 褦 Ȥ ե 뤬 ʤ Ȥ ȤǤ Υ
θ 褦 Ȥ ե ե Ƥ ǡ ƤߤƲ
invalid argument ϡ ؼ 줿 ѥ β Ǥ ä ˤǤޤ ޤ
ꤷ ֹ椬¸ ߤ ʤ ä ˤ⡢ Υ 顼 Ф뤳 Ȥ
29. get ish ⡼ ɤʤɤ ư ʤ
̷ ݡ ȤǤ fml8 get mget ϡ ֤ ݤ MIME/
Multipart ݡ Ȥ Ƥ ޤ
30. subscribe 褦 Ȥ ̵ 뤵 褦 Ǥ
륢 ɥ쥹 ¤ ޤ ɽ ϰϤ FML::Restriction::Base 饹
ꡢ Τ褦 ˤʤäƤ ޤ
my $domain_regexp = '[-A-Za-z0-9\.]+'; # domain of user@domain
my $user_regexp = '[-A-Za-z0-9\._\+]+'; # user of user@domain
ʥ ɥ쥹 ξ ˼ Τ褦 ˻Ĥ 뤵
error: unsafe From: ɥ쥹
error: ignore this request.
31. ' ॢ ɥ쥹 ޤ ʤ
륢 ɥ쥹 ¤ 뤿 쥷 ԤȤ Ƥ
32. "xxx"@yyy.or.jp Ȥ ɥ쥹 Ȥ ޤ subscribe Ǥ ޤ
⤽ ⡢ Υ ɥ쥹 ˤ 桼 ʬ Ȥ Ǥ Τǥ 顼 ˤʤä Ǥ
륢 ɥ쥹 ¤ ޤ 쥷 Ԥ⻲ Ȥ Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե 륷 ƥब 顼 ξ
ե ߽ǥ 顼 MTA ˤ Ԥʤ ˡ fml8
۾ェλ fml8 Ȥ Ԥʤ פν ʤ ޤ fml8 Ȥ
ä 餻 褦 Ȥ ˤϡ ե ޥ Ϸ Ф ǽ
ޤ Ƥ 줿 뤳 Ȥ Ϥʤ Ĥ Ǥ
ʲ ե 륷 ƥ 顼 ǽ ߤ ޤ ʤ 뤫
ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MTA fml8 إ 뤬
fml8 STDIN ɤߤ ٥ǥ ˽ޤ ν ߤ С ʤ
MTA ˺ Ƥ ᡢ exit(EX_TEMPFAIL) fml8 ץ
ェλ ޤ 路 the Section called fml8 ߤ Υ 塼
in Chapter 35 Ȥ Ƥ
ΤȤ fml8 incoming queue ˤ ü ˥ 뤬 ޤ줿 ե 뤬 Ĥ ޤ ۾ェλ
ˤϡ Υե ä 褦 ˤ Ƥ ޤ äƤ ޤäƤ⡢ Ȥǥ 塼 ƥ
ΤˤϸŤ ʤä incoming queue Υե ä Ū ˹Ԥʤ 뤿 ᡢ
λ ˾õ ȤߤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ֹ ˼
ֹ (+1 줿 ) ե (seq) ˽ ( ե
ơ ơ Ƥӳ ơ ɤߤ ߤ ) ǧ ʤ
Ƥ fml8 exit(EX_TEMPFAIL) ǽ λ MTA fml8
ƤӽФ Ƥ 褦 ˤ ޤ
ơ ( 塢 ʤ ϡ " ۤ " μ¤ ) fml8 Ǥϵ ֹ ʣ ϵ 褦 ˤʤäƤ ޤ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ ʤ ֹ Ǥ ֤ ν ʹߡ exit(EX_TEMPFAIL) ǽ λ ˥ץ │
│ ƤϤ ޤ Ƥ ޤ Τ MTA ˺ ꤷ ƤϤ ʤ ΤǤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
¸ κݤ˥ 顼 ˤʤä
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ ν Ϥ Ǥ˵ ֹ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
ߤϤǤ ޤ ꥸ ʥ ǥ ˽ ޤ ޤ ϡ إå
ˤϿ ɲä ʸ ϥ ꥸ ʥ Ȱ Ǥ ǡ incoming
queue ǥ 쥯 ȥ꤫ spool/ Ƥ ֹ ե link(2) 뤳 Ȥǡ
ˤ ޤ [20]
ǥ 뤳 Ȥ Ǥ ޤ
ݤ Ƥ ǡ ȤäƵ ޤ
ΤȤ ( outgoing ) 륭 塼 ˽ ᡢ ⤷ 顼
ü ˽ λ Ȥʤ
ǥ ˵ Ͽ ϻĤäƤ ǡ ο͡ ͤ ޤ ( ޤ ǰ ξ
ǡ Ƥ Ԥˤ⤦ ٺ ͤ Ǥ 礦)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
( outgoing ) 塼 ˽ ˤϤ ʤ ޤ
塼 ˽ Υǡ ޤ 顼
ü ˽ λ Ȥʤ [21]
outgoing 塼 ˤĤ Ƥξܺ٤ϡ the Section called fml8 ֤ in
Chapter 35 Ȥ Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ʊ 뤬
Ԥ ʣ Ф Ƥ Ȥ ⤢ ꤨ ޤ ξ Received:
Message-Id: ۤʤ
Ʊ ( Ȥ Message-Id: Ʊ ) [22] Ȥ ñ ʤ ⤷
ҥ Ǥ ֹ ˤʤ뤯 餤 ʤ ʣ Ϥ ޥ Ǥ ȹͤ Ƥ ޤ
ǡ 餤 ʤ Ĺ Ǥ ʣ Ϥ Ƥ ޤ Ǥ MTA
Τ 硢 β äƤ⤢ ƺ Ԥʤ ޤ
Ǥ ꥷ ƥ ΰ۾郎
٤ ݥ ϡ֤ Ʊ 뤬 Ƥ פǤ
̼ͣԤΰ Ƥ fml8 ʳ ƥ ɤ ͤǤ ̼
Ƥ fml8 ͤǤ 礦 ޤ fml8 Υ ٤Ʋ
ɤξ Ǥ⡢ å ʣ Ϥ Ȥ
å ʤ ʷ Τ Ȱ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
μ
Ʊ ʸ Ǥʤ From: Message-ID: Received: ޤǤ Ʊ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ɤ MTA Ƥ 롣
Ʊ ʸ From: Ǥ Received: ۤʤ 륵 A B
C ̲ᤷ Ƥ Τ褦 Received: Ĥ Ƥ Ǥ
Received: by C C
Received: by B B
Received: by A A
Ƥ 륵 аʹߤλ ƥ ۤʤ Ǥ 顢 ۤʤ Received:
ͤΥ ФǤ Ȥ
Received: by C C'
Received: by B B
Received: by A A
ʤ B C δ֤ ꤬ ʤޤ ޤ ʤ B ˡ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ʊ 뤬 ( 롼 )
fml8 MTA ˤ ä MTA ( ⤷ ä Τɤ Υ Ȥ MTA) fml8
˺ ٥ 뤬 ʤ 櫓 ǤϤ
롼 פ 褦 ˡ 롢 fml8 Message-Id: ϥ
夵 ǡ Υ 뤬 ֤äƤ Ƥ fml8 ϥ롼 פȤߤʤ ޤ
ʤ 衢 κ ʥإå ʬ
VI. ǥ
ѡ ȤǤϥǥ Ƥ ޤ
Table of Contents
30. [ ] : fml8 Υǥ ץ
31. ץ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 30. [ ] : fml8 Υǥ ץ
fml-devel ץ Ȥι
fml8 ץ ( ɥ͡ fml-devel) ϡ fml4 κƹ (refactoring) Ǥ
fml8 ϡ ǯ ꤷ Ƥ ޤ ⥢ ƥ 㥢 ⡢
Ǥޤä Ȼפ ޤ
ʬ Ȥ ˤ ΤǤ fml4 Ȥθߴ Խ ʬ ⤷ fml4 Ƥε ǽ
ϻפ ޤ fml4 б ǽ ϡ Ǥˤ ʤ ʬ fml8 ˤ
ˤ Ƥ fml8 ˺ 줿 ⥸ 塼 fml4 /͢ Ф Ƥ ޤ IPv6 ϡ Ǥ Ф
Ȥ 4.0 Ǥ ι⤤ mead ( 顼 ץ ) ʤɤ в
礦
Υޡ 4.0 Υ ɤ ݼ Ĥ 4.0 fml8 ¹Գ ȯ
ͽ Ǥ Τ 4.0 Ϥ stable ˶ᤤ current Ȥ դ ˤʤ 4.0
bug fix 4.0.x (4.0.1 4.0.2 ) Ȥ ƤޤȤ 졢 ͽ Ǥ դ
fml8 ȯ Υ ( fml-current ) Ȥ Ȥˤʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ʾܺ )
• ե 塼 ץ ʤ
• ٤ perl ⥸ 塼 ( perl 5.00504 ʹ )
• CUI (makefml) ե CGI ե
ɤ 粽 졢 塼 ʤɤ 䤹 Ǥ
( ڤǤ Τ ޤ et.al.)
• ЪΥ
□ С å ñ ˤǤ
□ Ǥ CPAN ⥸ 塼 Ȥ ( Ǥ ľ Ȥ ؤ ֤ Ƥ
ۤ 褤)
□ 3rd party ǥ 쥯 ȥ
• 첽 줿 С ꥹ ȤʤɤؤΥ ݲ
□ ե ( )
□ /etc/group ( )
□ NIS ( )
□ SQL (MySQL PostgreSQL )
□ LDAP
ºݤˤϸ ꡢ ϽŤ ʤäƤ ޤ Ť ʤäƤ
褦
• IPv4/IPv6 ready ( )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml ե 륢 ǥ
Table 30-1. TODO
┌───────┬──────────────────────────────┬──────────────────────────────────────┐
│status │ │ ܺ │
├───────┼──────────────────────────────┼──────────────────────────────────────┤
│done. │ 饤 │ 饤 Perl ѹ │
├───────┼──────────────────────────────┼──────────────────────────────────────┤
│ │ │fml4 fml8 ؤϡ sendmail │
│done. │ / │postfix ؤΰܹԤΤ褦 ʥ ǡ │
│ │ │config.ph Ѱդ 롣 │
├───────┼──────────────────────────────┼──────────────────────────────────────┤
│done. │ ᥤ wrapper (ЪΥ │ С ǥХå ñ ˤ 뤿 ЪΥ │
│ │ ) │ │
├───────┼──────────────────────────────┼──────────────────────────────────────┤
│ │ │ ʸ¤ꤢ CPAN ⥸ 塼 ɤ │
│done. │ ( 糫ȯ ϤǤ │ Ѥ Υ ߤ 뤳 ȡ │
│ │ ) │ Ȥ FML:: ⥸ 塼 ЪΥ CPAN│
│ │ │/ ⥸ 塼 Τ褦 ˡ │
├───────┼──────────────────────────────┼──────────────────────────────────────┤
│ │ ե cf │ │
│ │config.ph 褦 ʤ │ │
│ │ ǡ Ǥ Ȥ 롣 │ │
│done. │ 塼 ץ ڤˤʤ │ │
│ │ޥåȤˤ § Ȥ ơ │ │
│ │ Ȥ ̾ Τ ɤ Ʊ ե │ │
│ │ ޥåȤȤ 롣 │ │
├───────┼──────────────────────────────┼──────────────────────────────────────┤
│ │ │ USE_ ۤ ɤ ɤۤ _TYPE ɷ ޤ │
│ │ │NOT_USE ʤɤ϶ػߤ ( default_config ˽ │
│ │ ̿̾ § ε ʲ │ ) attribute ˤ Τ │
│ │ │ʤäƤ ޤ ΤϤ 礦 ʤ ɽ │
│ │ │ ʤ ᡢ ߤ ifdef η ɽ │
│ │ │ ʤ Ȥ ʤ ʤ │
├───────┼──────────────────────────────┼──────────────────────────────────────┤
│ │ ؿ 롼 main:: ڡ │ Perl Cookbook Ȥ ơ ˤ │
│ │ ˽ФƤ ΤϽ X11 │ ʥ å 롩 : åɤʤ│
│ │ ˡ åɤ Υ⥸ 塼 │ is_member() ǡ │
│ │ ʤ ݤ ʸ ̾ 롣 │MemberP() -> IsMember() │
│ │lisp Ū ѻߤ 롣 │ │
├───────┼──────────────────────────────┼──────────────────────────────────────┤
│done. │ │ │
│( Ǥ │ │ │
│lmtp │queue manager │ Τ (e.g. smtpfeed ) │
│ │ │ │
│Ƥʤ ;-) │ │ │
├───────┼──────────────────────────────┼──────────────────────────────────────┤
│ │ │BSD make C Ϥʤ Τǡ │
│ │ │autoconf äˤ ʤ Ȼפ ʤ │
│ │ │ configure Ȥ ̾ Υ Ȥ ե │
│done. │tools │ Ǥ դ 뤳 ȤϤ褤 Ȥ ⤷ │
│ │ │( ȡ ǽ äƤ ɡ Ĥ äƤޤ :-) │
│ │ │ Υ Ȥϡ Ȥ IPv6 ready │
│ │ │ Ȥ ( ߤμ │
│ │ │ ϻȤäƤϤ ʤ IPv6 Ͼ ĩ Ƥߤ ) │
└───────┴──────────────────────────────┴──────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ƥ 㥢
[architectu]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
˥ ˤĤ ( ɸ )
ƥ ȤǤ⡢ ǥ٥ ѡ ФäƤ⤤ ʤ ݲ Ƥ⡢ ֥ Ȼظ ʬ Ƥ⤤
ʤ Ǥ ꡢ 쥫 ̤ǥե ɥХå ʤ ץ Ȥηײ ɥ 塼 ʤ
ȡ
Table 30-2. Х
┌───────────┬─────────────────────────────────────────────────────────────────┐
│ │ │
├───────────┼─────────────────────────────────────────────────────────────────┤
│ ǽ 4 5 │ ײ ˥ ץ 20 ٤Ϥ ηײ │
│ │ 䤹 │
├───────────┼─────────────────────────────────────────────────────────────────┤
│2 3 │ ɤ │
├───────────┼─────────────────────────────────────────────────────────────────┤
│ ǽ │ ɥ ɥ 塼 │
├───────────┼─────────────────────────────────────────────────────────────────┤
│ │ ޤ ޤ פݤ snapshot Ƥߤ롣 alpha-0, alpha-1, alpha-2, │
│ │... │
└───────────┴─────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 31. ץ
Ϥϡ ץ ؤ ˤĤ ƤΥ Ǥ
FML.ORG Υ եȥ ǥ ܺ٤ FNF (FML.ORG Natural Form) Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̿̾ § ʥ͡ ߥ
default Ȥ ñ Τɤ ޤ Ǥ
̤ˡ ֺ ʤ ƤϤ ǽ _ ޤǤΡ ϡ ʡɤ ǤΥ 饹 ̣
ͤ ޤ
Ȥ article Ȥ ꤬ ޤ ξ Ϣ ѿ ٤
article_* (article α ¦ 줬³ ) Ȥ ̾ Τ ȴ Ԥ 礦
ͤ default_* ( Ĥޤ default 饹 ¸ ߤ ͤ ) ֥ 饹
_default_ ʤ ϡ֥ 饹_ _default Ȥ å ľ ȹͤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
¤
ƥޥƥ å ѿ ̾ 롼 ͤ Ƥ ȡ Ǥ⡢ 쥯 饹 ȷѾ Ȥ ͤ
١ ȹͤ ޤ Ȥ С Τ褦 ʤ Ǥ
mail ϡ֤ Ĥޤ messager/rfc822 Τ Ǥ fml ƥ
ǡ mail ФƤ ǡ mail Ǥ mail ֥ 饹 ȹͤ
뤿 ᡢ PREFIX_mail_° ɤ Ǥ 礦 ̩
˹Ԥʤ ȡ դˡ 櫓 狼 ΤǤۤɤۤɤˤ ޤ 礦
mail_ Ȥ
mail_default_ Ȥ
use_incoming_mail_ Ȥ
incoming_mail_ Ȥ
use_outgoing_mail_ Ȥ
outgoing_mail_ Ȥ
use_report_mail_ Ȥ
report_mail_ Ȥ
⡢ ̩ ˤ outgoing_report_mail Ȥ Ǥ 礦 ɡ ޤǤϤ ʤ Τ ۤ
ɤۤɤäƤȤ 礦 ͡
إå ξ ä ˤʤ 礦
header_ ʤ
header_default_ ʤ
article_header_ ʤ
use_article_header_ ʤ
command_mail_header_ ʤ
use_command_mail_header_ ʤ
饹 γ ¤ Ǥ ȡ Τ褦 ʴ ˤʤ ⤤ ޤ
command {
SOMETHING_command
admin_command
}
directory {
XXX_directory
}
file {
template_file
}
mail {
incoming_mail
outgoing_mail
report_mail
}
message {
reply_message
}
article {
article_digest (digest ǤϤʤ article digest Ȥ狼 ̾ )
article_spool (spool ǤϤʤ article spool Ȥ狼 ̾ )
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ɸ ( log.cf lock.cf)
use_ = yes no
# ǥ 쥯 ȥ _dir Ĥ Ȥ ˾ ޤ
_dir = ʸ
# ե _file Ĥ Ȥ ˾ ޤ
_file = ʸ
_type = ʸ
_format = ʸ
_format_type = ʸ
_limit = ʸ ( )
_upper_limit = ʸ ( )
_lower_limit = ʸ ( )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ѥ ( acl.cf)
_restrictions = reject_° 1
check_° 2
permit_ ʤ
° 1 = ѥ 1
ѥ 2
° 2 = var1
var2
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ѥ 3 ( ץ ̾ Ĥ )
ץ _ _°
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ / ǥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ Ĥ Ƥϡ FNF ⻲ Ȥ Ʋ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
륭 Ф quotemeta()
֥ Ȥ Υ Ȥ鷺 ˡ åɤ 뤳 ȡ : main_cf
ؤΥ
$curproc->{ ... }->{ main_cf }
ǤϤʤ
$curproc->main_cf();
@EXPORT @EXPORT_OK ϡ Ǥ
Srting::is_japanese_string() 餤 γ ǤϤʤ 3
餤 ǻߤޤäƤۤ 褦 ʡ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[ ] ץ ( ƤΥ ( : ñ ʤ ))
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ Ȥ ơ ƤΥ ( : ñ ʤ ) ˵ Ͽ Ƥ ޤ ߤŤ餯 Ƽ Ǥ │
└─────────────────────────────────────────────────────────────────────────────┘
• Perl Ǥϡ ݥ ե ¹Ի Х Ǥ 뤳 Ȥ˽Ż롣 ¿ ŷѾ ʤɤ
ݥ ե ¹Ի Х ˤ ͥ ظ ݤ Ϻ롣
• Perl 5 Υѥå ä ֥ Ȥݤ Ȥ ʬ Υѥå ΤäƤ
ǡ ñ ˥ѥå ( : :: ) Ƥ 餤 ˻פ 褤
• Τ ե ֥ Ȥݤ
• Perl 5 Ū ˥ ֥ Ȥݤ ʤäƤ ޤ ֥ ȡ ֥ ȡ ֥ Ȥ
ʤ 褦 ˥Х Ф 褦
• ¾ ͤΥ⥸ 塼 Ȥ ϤȤ⤫ ʬã ǽ⥸ 塼 Ρɿ ɷѾ ϤǤ
Ǥ 褤 Ȥ ǤϤʤ Ǥ 礦
libexec/ libkern.pl ˤ main:: ˵ Ҥ ʬ ϴ ʥե Ҥ Ƥ
롣 ϴ Ȥ Ǥ 뤿 ᡢ $curproc (C Ǥ struct *curproc ˤ
) ¤ ץ ʽ Ƥ 롣
ΤҤȤIJ ء Ƥ β Ǥϡ ȥݥ ե
褵 ˤ ⤨ 롣
VII. ¤
ѡ Ȥϳ ȯ Ը Ƥ ޤ
Table of Contents
32. С 褹 뤿 fml ֡ ȥ
33. ե config.cf
34. ץ κ
35. fml8 Υ ƥ
36. / ޤȤ
37.
38. ( )
39. ե 륿
40. 桼 ˤĤ
41. ޥ ( ޥ 롢makefml CGI)
42. CGI ץ
43. ǥ 쥯 ȥ
44. ǡ θ
45. 桼 ǧ
46. HOOK( եå )
47. С ɥᥤ ˤĤ
48. 顼 ץ (libexec/error)
49. IO ե
50.
51. ǡ ١ ⥸ 塼
52. ǡ ١ ƥ (DBMS) Ȥ
53. ǥ : ¾ Σ̥ͣ ƥ fml8 Ѵ ϡ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 32. С 褹 뤿 fml ֡ ȥ
fml8 ˤϡ ȡ 뤵 fml ΥС 褹 뤿 ϤǽҤ٤ ȥ
ȥ ײ
fml (libexec/distribute) boot Ƥ
functions class
----------------------------------------
main::Bootstrap() libexec/loader
|
V
main::Bootstrap2() FML::Process::Switch
|
V
ProcessSwitch() FML::Process::Switch
|
|
| switch to ($obj = FML::Process:Distribute)
|
V
ProcessStart($obj,$args) FML::Process::Flow
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
:
Ȥ ξ loader 鼡 ȥ⥸ 塼 뤬 ƤФ Ҥϼ Τ褦 ˤʤ
/usr/local/libexec/fml/distributre ( μ Τ /usr/local/libexec/fml/loader) /
usr/local/etc/fml/main.cf ɤߤ ߡ fml_version ٤ 饤 ֥ ΥС
Ȥ fml_vesrion 8.0.0 ȤʤäƤ /usr/local/lib/fml/8.0.0/
ʲ ˤ ֥ Ȥ ä Ǥ
@INC 塢 loader FML::Process::Switch ɤ $0 ( ץ ̾)
٤ޤ ץ ̾ 鼫ʬ λŻ Τǡ FML::Process::Distribute 饹
ɤ 褤 Ȥ ޤ Υ 饹 ɤ ܤ ǡ ץ ̾
ȥ ɤ 饹 б ط /usr/local/etc/fml/defaults/ С /modules (
/usr/local/etc/fml/defaults/8.0.0/modules) ޤ
ä FML::Process::Flow::ProcessStart() Ȥ ؿ 椷 Ƥ
ޤ ProcessStart() Ȥ FML::Process::Distribute ֥ Ȥ Ϥ 졢
FML::Process::Distribute ֥ Ȥ Ԥ Ƥ Ȥ ή ʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FML::Process:: 饹 γ ¤
FML::Process::Distribute >-|
FML::Process::Command >-|-- FML::Process::Kernel
FML::Process::Mead >-| |
|-use-a FML::Parse
|-use-a FML::Config
|-use-a FML::Log
|-use-a ... ...
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ץ ¹Ի ͻ
• [/usr/local/libexec/fml/loader (wrapper) μ¹ ]
ʳ Ǥϡ ޤ fml8 Perl ⥸ 塼 뷲 椬 ܤäƤ ޤ Υץ ϡ loader
δؿ Bootstrap() Ԥ ޤ
distribute ʤ libexec/ ʲ ˤ ϡ ɤ loader ؤΥ
Ǥ /usr/local/libexec/fml/ ʲ Ȥ Ƥ
• [loader Bootstrap() ؿ ¹ ]
/usr/local/etc/fml/main.cf ɤ߹ ߡ ¹Ԥ fml ΥС Τ
ޤ main.cf ͤ @INC (Perl Υ饤 ֥ ѥ ) ߹
饤 ֥ ΥС 褷 ޤ default_config.cf.{ja,en} ϥС
Ǥ Τǡ ե ߹ ˡ ʳ ǥС ʤ ޤ
@ARGV ( ¹Ԥ 줿 ץ ΰ ) ɤΣ̤ͣ config.cf ( ե )
ɤ߹ ޤ
• Τ ȡ 褦 䤯 FML::Process::Switch ( С ) 饹 ɤ ޤ
Bootstrap2() ProcessSwitch() Ԥ FML::Process::Flow ǡ
ޥ Ѥʤɤγƥץ ܤ Ƥ ޤ
λ ǡ ɤΥ⥸ 塼 ( : FML::Process::Distribute) ɤ äƤ
ޤ FML::Process::Distribute ֥ Ȥʤɤϡ FML::Process::Flow δؿ
ƤӽФ ݤ˰ Ȥ Ϥ ޤ
• FML::Process::Flow ǡ ƥ⥸ 塼 ( : FML::Process::Distribute) Υ åɤ
ӽФ ޤ
FML::Process::Flow ϡ ɤΤ褦 fml8 ץ Ԥ 뤫 ʲ /
ޤ ɤΥץ
$process = new FML::Process:: ʤˤʤ ;
$process->prepare($args);
$process->verify_request($args);
$process->run($args);
$process->finish($args);
Ԥ Ƥ ޤ Τ ᡢ ƥץ ϡ 줾 Ĥ ʥ åɤ
FML::Process:: ʤˤʤˡ ʲ Υ 饹 Ѱդ ߡ Ǥ⤤ Τǡ
åɤ ɬ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: ml_name ml_domain ͤϤɤ Dz
ߤ FML::Process:: ʤˤʤˡ prepare() åɤ Ƥ ޤ
ʲ ¤ ˤĤ Ƥ / ܤ Ǥ ä ¤ θ ơ prepare
() ˻ Ƥ Ƥ ޤ
main::Bootstrap()
main.cf fml ΥС
hints Ϥ (CGI Τ )
CGI
ꤦ
Τ ᡢloader hints Ȥ
ml_domain ml_name ϡ ɥ ɤ 롣
main::Bootstrap2()
ProcessSwitch()
Ȥ ⥸ 塼 ( Process:: ʤ )
߹ cf ե ʤ
饤 ֥ ѥ η @INC ν ʤɤ
hints Ϥ Ȥ (CGI Τߡ )
ProcessStart($obj, $args)
ΤΥ
new
prepare
ml_name ml_domain η
CGI
hints (CGI Τߡ )
߹ cf ե
parse
߹
ޥ 饤 Ϥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 33. ե config.cf
̤ͣ Ȥ config.cf
ƣ̤ͣ Ȥˤ ޤ ޤʥ ޥ 뤳 Ȥ Ǥ ޤ fml4 Ǥ fml8 Ǥ Ǥ
Τ fml4 Ǥϡ ƣ̤ͣΥۡ 쥯 ȥ $DIR ( : /var/spool/ml/elena)
config.ph Ȥ ե 뤬 .ph Ȥ ̾ Ǥ狼 ꡢ perl
ȤǤ
fml8 Ǥ config.cf Ȥ ե ʤäƤ ޤ .cf Υե ޥåȤ Postfix
.ini
=
ˤʤäƤ ޤ ʣ ͤ ǽ Ǥ ( )
perl ⥸ 塼 Ʊ ˡ =cut θ perl Ȥ ˤʤäƤ ޤ ơ ֥
= ε Ҥ =cut ˽
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 ν
fml4 perl ϡ Ĥ
åȤȤ Ƥϡ perl ȤʤΤǡ perl ¤ ͳ ʽ ޤ
ʹ֤ˤȤäƤϴ ΤǤ Ǥ Ȥ Τϡ makefml CGI
ꥤ ե ˤ ΤǤ fml4 Ǥϡ cf Ȥ ե
config.ph Ȥ 2 ĤΥե ޥåȤΰۤʤ 뤬 Ȥ 뤳 Ȥˤʤ [23] ʤ 顢
ϣ ĤΥե ʬ ޤ ݼ餬 Ǥ
fml8 Ǥϡ ե ι ˤ䤵 ե ޥåȤȤ ޤ 줬
config.cf ǡ Postfix ե ޥåȤǤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
config.cf Υե ޥå
config.cf Υե ޥåȤ /usr/local/etc/fml/main.cf Ǥ
=
= 1 2 3
= 1
2
3
Τ褦 ˥ ڡ ʤ ϲ ԤǶ ڤä Ȥ Ǥ ޤ
Ǥ $ ˤ Ÿ ǽ Ǥ Ȥ
a = 1
b = $a/ 2
Ϻǽ Ū
a = 1
b = 1/ 2
Ȳ
Ÿ ϡ ٤Ƥ ѿ ɤߤ Ԥʤ ޤ Τ ᡢ ʲ Τ褦
a = 1
b = $a/ 2/$c
c = 3
a = 4
٤Ƥ ɤ߹ Ȥ˲
b = 4/ 2/ 3
Ȳ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Postfix ĥ
+=
-=
ǡ ͤ Ǥ ޤ
x = a b c d
x -= b
x = a c d
Ȳ
ޤ
x = a b c d
x += e
x = a b c d e
Ȥʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
config.cf ɤ߹ ( ξ )
ʣ config.cf ɤ߹ ߡ ξ ʤ Ȥ Ǥ ޤ
إǥե ١ إ ȸ ١ إɥᥤ ͭ ʤɤ ̥ե
ʬΥ Ĥ ɤ߹ ߤ뤳 Ȥ Ǥ ޤ Τ ǥե Ǥϡ Ĥ
.cf ե ʬΥ ޤ
fml8 ϵ ư ˤ Υե ֤ ɤߤ ߡ Ǹ ̸ͣ config.cf ɤ߹ ߤޤ
ơ ٤Ƥ ߹ Ÿ Ԥʤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ÿ
$ ѿ Ԥʤ ξ
ˡ å [24] ƤФ줿 ݤˡ ѿ Ԥʤ ޤ
Ȥ
$config->{ key } = '$ml_home_dir/value';
Ȥ ʤ
$config->{ another_key }
( Ϥʤ ) åɤ ƤФ줿 ݤˡ ٤Ƥ ( ˰ ط
뤿 ᡢ ٤Ƥ ѿ ʤ )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
¤:
¤ äޤ
Ԥʤ ޤ FML::Config ѿ %_fml_config ˡ ͤ
Ȥ ¸ $dir/$file Τ褦 ΤޤޤǤ
FML::Config get() åɤϡ %_fml_config ǤϤʤ %_fml_config_result ͤ ֤ Ƥ
ޤ %_fml_config_result ͤ $dir ʤɤ Ÿ 줿 ǡ /var/spool/ml/elena
/file ʤɤȤʤäƤ ޤ ѿ get() åɤʤ ͤ åɤ ƤФ줿 ݤ˽
ƹԤʤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
(alphabetical order)
Table 33-1. table description
┌─────────────────────────────────────────────────┬───────────────────────┬─────────────────────────────────────┐
│ variable name │ descrition │ default value(s) │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│address_compare_function_domain_matching_level │ 륢 ɥ쥹 │3 │
│ │Υɥᥤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│address_compare_function_type │ С å ˡ │user_part_case_insensitive │
│ │桼 ѡ Ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ޥ CGI ǵ │adduser deluser addadmin deladmin │
│admin_cgi_allowed_commands │ ޥ Υꥹ │digeston digestoff list log newml │
│ │ │rmml reviveml │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│admin_cgi_base_dir │ Υɥᥤ Ǥ │$cgi_base_dir/$ml_domain/admin │
│ │CGI ֤ ǥ 쥯 ȥꡣ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │gpg configurations for │ │
│admin_command_mail_auth_gpg_config_dir │admin commnad mail │$etc_dir/gpg-admin-command-mail-auth │
│ │authentication. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│admin_command_mail_auth_gpg_config_dir_alias │conventional naming │$etc_dir/gpg-admin │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │pgp configurations for │ │
│admin_command_mail_auth_pgp_config_dir │admin commnad mail │$etc_dir/pgp-admin-command-mail-auth │
│ │authentication. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│admin_command_mail_auth_pgp_config_dir_alias │conventional naming │$etc_dir/pgp-admin │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│admin_command_mail_restrictions │admin ޥ ؤ │reject_system_special_accounts │
│ │ │check_admin_member_password reject │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│admin_member_maps │ С ɤ ǧ ڤ │$primary_admin_member_map │
│ │˸ 뤹 ٤ƤΥ С ꥹ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│admin_member_password_maps │ ȴ Υѥ ɥե │$primary_admin_member_password_map │
│ │ ( ) │file:$etc_dir/passwd │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│admin_recipient_maps │ Ȥꤢ Ƥ 뤱 ɡ │$primary_admin_recipient_map │
│ │Ȥ ƤϤ ʤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│anonymous_cgi_base_dir │ ̿ CGI ֤ ȥåץǥ │$fml_owner_home_dir/public_html/ │
│ │쥯 ȥꡣ │cgi-bin/anonymous │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│anonymous_cgi_expire_limit │ ̥桼 CGI session │15m │
│ │ID │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_delivery_transport │ ȥ ݡ ( ƥ│smtp │
│ │ ) λ ꡣ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_expire_limit │ ɤΤ 餤 Ť ä │90d │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_filter_reject_notice_data_type │ ɤΤ褦 ˥ե │string │
│ │ ɤ 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_filter_reject_notice_recipients │ 顼 Τ 餻 μ │maintainer sender │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_header_filter_rules │ ե 륿 Υ롼 롣 │check_message_id check_date permit │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_header_list_help │list-help of article │$mail_header_default_list_help │
│ │header. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_header_list_id │list-id of article │$mail_header_default_list_id │
│ │header. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_header_list_owner │list-owner of article │$mail_header_default_list_owner │
│ │header. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_header_list_post │list-post of article │$mail_header_default_list_post │
│ │header. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_header_list_software │default list-software │$mail_header_default_list_software │
│ │header field. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_header_list_subscribe │list-subscribe of │$mail_header_default_list_subscribe │
│ │article header. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_header_list_unsubscribe │list-unsubscribe of │$mail_header_default_list_unsubscribe│
│ │article header. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │delete_unsafe_header_fields │
│ │ │rewrite_article_subject_tag │
│ │ │rewrite_reply_to rewrite_errors_to │
│ │ إå │rewrite_stardate rewrite_precedence │
│article_header_rewrite_rules │ 뷲 │rewrite_message_id add_software_info │
│ │ │add_fml_ml_name │
│ │ │add_fml_traditional_article_id │
│ │ │add_fml_article_id add_x_sequence │
│ │ │add_rfc2369 │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_message_id_cache_dir │ ƥ ס │$db_dir/article_message_id │
│ │ 줿 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_mime_component_filter_rules │ ե │$fml_config_dir/mime_component_filter│
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_non_mime_filter_rules │ Ȥꤢ ߡ │reject_empty_content_type permit │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_post_article_thread_lifetime │ ƻ ˡ ɤ │86400 │
│ │ Ǥ 顢û ֤δ֡ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_post_auth_gpg_config_dir │gpg configurations for │$etc_dir/gpg-article-post-auth │
│ │article authentication.│ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_post_auth_pgp_config_dir │pgp configurations for │$etc_dir/pgp-article-post-auth │
│ │article authentication.│ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_post_encrypt_gpg_config_dir │gpg configurations for │$etc_dir/gpg-article-post-encrypt │
│ │article encryption. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_post_encrypt_pgp_config_dir │pgp configurations for │$etc_dir/pgp-article-post-encrypt │
│ │article encryption. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_post_restrictions │ Ƥؤ │isolate_system_special_accounts │
│ │ │permit_member_maps isolate │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_post_restrictions_reject_notice_data_type│ ɤΤ褦 ˥ե │string │
│ │ ɤ 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_sequence_file │ ֹ ¸ │$sequence_file │
│ │( ߡ ) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_size_filter_rules │ ե 륿 Υ롼 롣 │check_header_size check_body_size │
│ │ │permit │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_spam_filter_bogofilter_options │"-e" implies embedded │-e │
│ │mode. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_spam_filter_drivers │SPAM å Ȥ ƻȤ │bogofilter │
│ │ץ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_spam_filter_functions │list up driver names │bogofilter │
│ │used as spam checker. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_spam_filter_rules │SPAM 줿 │header_rewrite │
│ │ ɤ 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │exit non-zero status │ │
│article_spam_filter_spamassassin_options │code when spam caught │-e │
│ │if "-e" specified. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_spam_filter_spamc_options │spamc optoins. "-c" │-c │
│ │means check only. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_subject_tag │Subject: Υ │[$ml_name:%05d] │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ɥ쥹 β Х Ȥ │ │
│article_summary_file_format_address_length │ 롣 ܤ ϥ │15 │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │reject_not_iso2022jp_japanese_string │
│ │ │reject_null_mail_body │
│ │ ƥ ؤΥե 륿 │reject_one_line_message │
│article_text_plain_filter_rules │ Υ롼 롣 │reject_old_fml_command_syntax │
│ │ │reject_invalid_fml_command_syntax │
│ │ │reject_japanese_command_syntax │
│ │ │reject_ms_guid permit │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_thread_outline_greeting_en │ ɤγ Ϥޤ │[outline of this thread] │
│ │ˤĤ 밧 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_thread_outline_greeting_ja │ ɤγ Ϥޤ │[ ɤΤ 餹 ] │
│ │ˤĤ 밧 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_thread_outline_rules │ ɤγ ä │add_outline_to_header │
│ │ ˤɤ ɲä │append_outline_to_body │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_virus_filter_clamav_options │--mbox needed for mail │--quiet --mbox │
│ │files. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_virus_filter_drivers │ 륹 å Ȥ ƻȤ │clamscan │
│ │ ץ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_virus_filter_functions │list up driver names │clamav │
│ │used as virus checker. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│article_virus_filter_rules │ 륹 줿 │reject │
│ │ ɤ 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_base_dir │ CGI ֤ ȥåץǥ │$fml_owner_home_dir/public_html/ │
│ │쥯 ȥ │cgi-bin/fml │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_charset_en │CGI αѸ ե │us-ascii │
│ │CHARSET │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_charset_ja │CGI ɽ ܸ ե │euc-jp │
│ │CHARSET │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_default_charset │CGI ɽ Υǥե │$cgi_charset_ja │
│ │CHARSET │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_default_language │CGI Υǥե │japanese │
│ │(!= charset) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_language_select_list │CGI Ѳ ʸ │japanese english │
│ │ɰ (!= charset) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_main_menu_color │ ǥե bgcolor │#FFFFFF │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_menu_address_map_select_list │ CGI ǤΥ ɥ쥹 │member recipient admin_member │
│ │ ݤ ٤ åװ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_menu_default_address_map │ CGI ǤΥ ɥ쥹 │recipient │
│ │ Ȥ ޥåפΥǥե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│cgi_navigation_bar_color │ ǥե bgcolor │#FFFFFF │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │chaddr ޥ │ │
│chaddr_command_auth_type │confirmation ǧ ( │confirmation │
│ │ å ǧ ) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│chaddr_command_operation_mode │chaddr ν ư │automatic │
│ │ ˤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │gpg configurations for │ │
│command_mail_auth_gpg_config_dir │(user) commnad mail │$etc_dir/gpg-command-mail-auth │
│ │authentication. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │pgp configurations for │ │
│command_mail_auth_pgp_config_dir │(user) commnad mail │$etc_dir/pgp-command-mail-auth │
│ │authentication. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│command_mail_filter_reject_notice_data_type │ ɤΤ褦 ˥ե │string │
│ │ ɤ 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│command_mail_filter_reject_notice_recipients │ 顼 Τ 餻 μ │maintainer sender │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│command_mail_invalid_command_limit │ ޥ │100 │
│ │ ޤޤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ޥ Ԥ│ │
│command_mail_line_length_limit │ ޥ ξ │128 │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│command_mail_reply_prompt │command prompt in │>>> │
│ │message reply │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │isolate_system_special_accounts │
│command_mail_restrictions │ ޥ ؤ │permit_anonymous_command │
│ │ │permit_user_command isolate │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │check_header_size check_body_size │
│command_mail_size_filter_rules │ ե 륿 Υ롼 롣 │check_command_limit │
│ │ │check_line_length_limit permit │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│command_mail_valid_command_limit │ ޥ │100 │
│ │ ޤޤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│confirm_command_expire_limit │confirmation ͭ │14d │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│confirm_command_prefix │confirmation ֻ ɽ │confirm │
│ │ ʥ ޥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │CREATE-ON-POST Ū ˣ̤ͣ│ │
│createonpost_newml_maps │ 뤳 Ȥ Ǥ Υꥹ│pcre:$ml_home_dir/newml.allow.pcre │
│ │ ȡ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │reject_system_special_accounts │
│ │ │reject_errormail │
│createonpost_newml_restrictions │CREATE-ON-POST Ū ˣ̤ͣ│reject_fml8_managed_address │
│ │ 뤳 Ȥ Ǥ │reject_createonpost_domain │
│ │ │permit_createonpost_maintainer_maps │
│ │ │permit_ml_domain │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │reject_system_special_accounts │
│ │ │reject_errormail │
│createonpost_sender_restrictions │CREATE-ON-POST ʣ̤ͣ │reject_list_header_field │
│ │ Ǥ │reject_fml8_managed_address │
│ │ │reject_createonpost_domain │
│ │ │permit_anyone │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │reject_system_special_accounts │
│ │REATE-ON-POST ʣ̤ͣ │reject_errormail │
│createonpost_subscribe_restrictions │subscribe Ǥ │reject_fml8_managed_address │
│ │ │reject_createonpost_domain │
│ │ │permit_anyone │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│db_dir │ Ƽ ե │$var_dir/db │
│ │ǥ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│default_mail_body_size_limit │ ʸ ξ Υǥե │10240000 │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│default_mail_header_size_limit │ إå ξ Υǥե │102400 │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│deny_file │deny ե │$ml_home_dir/deny │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│digest_header_rewrite_rules │ ޤȤᤪ إå │add_software_info add_rfc2369 │
│ │ 뷲 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│digest_member_maps │ ߡ │$primary_member_maps │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│digest_recipient_maps │ ٤ƤΤޤȤ │$primary_digest_recipient_map │
│ │ԤΥꥹ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│digest_sequence_file │ ޤȤ Ǹ ֹ │$ml_home_dir/seq-digest │
│ │ ¸ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│directory_default_mode │ ǥ 쥯 ȥ │0755 │
│ │Υǥե ⡼ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │fml 饷 ƥ │ │
│domain_config_base_dir │ ֤ ǥ 쥯 ȥ│$ml_home_prefix/etc │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│domain_exim_config_dir │exim ˶ 뤿 │$domain_config_base_dir/exim │
│ │ ե ǥ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│domain_local_dir │domian local ʥǥ 쥯 ȥꡣ│$ml_home_prefix │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│domain_local_log_file │ ɥᥤ ͭ Υ ե │$domain_local_dir/@log@ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│domain_local_tmp_dir │domian local tmp ǥ │$ml_home_prefix/@tmp@ │
│ │ 쥯 ȥꡣ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│domain_mail_config_dir │MTA ˶ 뤿 │$domain_config_base_dir/mail │
│ │ե ǥ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │postfix ˶ 뤿 │ │
│domain_postfix_config_dir │ ե ǥ 쥯 │$domain_config_base_dir/postfix │
│ │ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│domain_procmail_config_dir │MTA ˶ 뤿 │$domain_config_base_dir/procmail │
│ │ե ǥ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│domain_qmail_config_dir │qmail ˶ 뤿 │$domain_config_base_dir/qmail │
│ │ ե ǥ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │sendmail ˶ 뤿 │ │
│domain_sendmail_config_dir │ ե ǥ 쥯│$domain_config_base_dir/sendmail │
│ │ ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│error_mail_analyzer_cache_dir │error messages Υ │$db_dir/error │
│ │ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│error_mail_analyzer_cache_mode │ ⡼ │temporal │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│error_mail_analyzer_cache_size │ │14 │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│error_mail_analyzer_cache_type │ │File::CacheDir │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│error_mail_analyzer_function │FML::Error::Analyze │histgram │
│ │δؿ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│error_mail_analyzer_function_select_list │FML::Error::Analyze │simple_count histgram │
│ │δؿ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│error_mail_analyzer_simple_count_limit │simple_count Υ 顼 │5 │
│ │ ξ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│etc_dir │ ѥ ɥե ɤ ֤ ǥ │$ml_home_dir/etc │
│ │ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│event_queue_dir │ Υ 塼 ǥ 쥯 ȥ │$var_dir/event/queue │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │password to fetch │ │
│fetchfml_article_post_password │article messages for │******** │
│ │$ml_name ML │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │username to fetch │ │
│fetchfml_article_post_user │article messages for │$ml_name │
│ │$ml_name ML │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │password to fetch │ │
│fetchfml_command_mail_password │command messages for │******** │
│ │$ml_name ML │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │username to fetch │ │
│fetchfml_command_mail_user │command messages for │$ml_name-ctl │
│ │$ml_name ML │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │password to fetch error│ │
│fetchfml_error_mail_analyzer_password │messages for $ml_name │******** │
│ │ML │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │username to fetch error│ │
│fetchfml_error_mail_analyzer_user │messages for $ml_name │$ml_name-admin │
│ │ML │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│fetchfml_fetch_protocol │protocol to fetch │pop3 │
│ │messages. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│fetchfml_imap_servers │imap servers fetchfml │localhost │
│ │process uses. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│fetchfml_pop_servers │pop servers fetchfml │localhost │
│ │process uses. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │queue_dir fetchfml uses│ │
│fetchfml_queue_dir │as temporary incoming │$var_dir/mail/queue-fetchfml │
│ │queue │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│file_default_mode │ ե Υǥե│0600 │
│ │ ⡼ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│get_command_request_limit │get ޥ ǻ 뵭│100 │
│ │ ξ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│guide_file │GUIDE ե │$ml_home_dir/guide │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│help_file │ إ ե │$ml_home_dir/help │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│html_archive_dir │HTML 줿 │$fml_owner_home_dir/public_html/fml/ │
│ │ǥ 쥯 ȥ ( ̤ͣ ) │mlarchive/$ml_domain/$ml_name │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│html_tmp_base_url │ CGI URL│/~$fml_owner/fml/tmp │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│html_tmp_dir │ CGI │$fml_owner_home_dir/public_html/fml/ │
│ │ 쥯 ȥ │tmp │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│incoming_article_body_size_limit │ Ƥ 줿 ʸ ξ │$default_mail_body_size_limit │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│incoming_article_header_size_limit │ Ƥ 줿 إå ξ │$default_mail_header_size_limit │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │MTA fml Ȥ Υ│ │
│incoming_command_mail_body_size_limit │ ޥ ʸ ξ│$default_mail_body_size_limit │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │MTA fml Ȥ Υ│ │
│incoming_command_mail_header_size_limit │ ޥ إå │$default_mail_header_size_limit │
│ │ξ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│incoming_mail_body_checksum_cache_dir │Message-ID Υ │$db_dir/body_checksum │
│ │ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│incoming_mail_body_loop_check_rules │ إå Ф ץ å │check_body_checksum │
│ │ Υ롼 뷲 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│incoming_mail_cache_dir │ ǥ │$var_dir/mail/incoming │
│ │ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│incoming_mail_cache_size │ 粿 │128 │
│ │ 夹 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│incoming_mail_envelope_loop_check_rules │Envelope Ф ץ │check_envelope_sender │
│ │ å Υ롼 뷲 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│incoming_mail_header_loop_check_rules │ إå Ф ץ å │check_message_id check_x_ml_info │
│ │ Υ롼 뷲 │check_list_post │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│isolated_queue_dir │top level directory to │$var_dir/mail/queue-isolated │
│ │hold isolated messages │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│isolated_queue_expire_limit │expire messages in the │14d │
│ │queue after this limit.│ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│language_preference_order │ ͥ │ja en │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ldap_base_dn │base DN to contact in │dc=$ml_name, dc=fml, dc=org │
│ │modify, search et.al. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ldap_bind_dn │DN to bind. │dc=fml, dc=org │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ldap_query_add_as_ldif │attributes to add into │fmlrecipient:&address fmlmember:& │
│ │$ldap_base_dn entry. │address │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │attributes to remove │fmlrecipient:&address fmlmember:& │
│ldap_query_delete_as_ldif │from $ldap_base_dn │address │
│ │entry. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ldap_user │dummy │fml │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│list_addresses │ ̤ͣ Ȥ ɥ쥹: : │$maintainer $article_post_address │
│ │elena, elena-ctl │$command_mail_address │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│list_command_default_maps │ ǻ ꤷ ʤ ˡ list │$recipient_maps │
│ │ ޥ ɽ ޥå │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│listinfo_base_dir │information ǥ 쥯 ȥ│$fml_owner_home_dir/public_html/fml/ │
│ │ ( ̤ͣ ) │listinfo │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│listinfo_dir │information ǥ 쥯 ȥ│$listinfo_base_dir/$ml_domain/ │
│ │ ( ̤ͣ ) │$ml_name │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│listinfo_template_base_dir │listinfo template │$fml_share_dir/listinfo │
│ │template dir │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│listinfo_template_dir │listinfo template │$fml_share_dir/listinfo/ │
│ │ │$template_file_default_charset │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│lock_dir │ ե ǥ │$var_dir/lock │
│ │쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│lock_file │ ե ( 㥤 │$lock_dir/giantlock │
│ │ Υե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│lock_type │ Υ │flock │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ Ǹ Ԥ 뤫 │ │
│log_command_tail_starting_location │Ĥޤ tail -100 log │100 │
│ │100 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ˤ䤵 ե │ │
│log_computer_output_engine │ޥåȤ ν ϥ │FML::Log::Print::Simple │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_dir │ ե │$var_dir/log │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_file │ML Υ ե 롣 │$ml_home_dir/log │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_format_type │log message format │process[pid] │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_rotate_archive_file_total │log.0 log.1 ʤɤ . │7 │
│ │ ʬ Ϻ 礤 ġ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_rotate_interval │ ե ơ │86400 │
│ │ ʤ ֳ֡ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_rotate_policy │ ƥ Υݥꥷ │size │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_rotate_size_limit │ ե │300000 │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_syslog_facility │see syslog(3) │mail │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_syslog_ident │ ٤ƤΥ ˸ │fml/$program_name │
│ │ ʸ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_syslog_options │see syslog(3) │pid │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_syslog_priority │see syslog(3) │info │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│log_type │ Ȥ (syslog│file │
│ │ ) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_aliases_file │MTA ˶ 뤿 │$domain_mail_config_dir/aliases │
│ │aliases ե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_header_default_errors_to │ ǥե Errors-To: │$maintainer │
│ │إå ե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_header_default_list_help │ ǥե list-help │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_header_default_list_id │ ǥե list-id إå │$ml_name ML <$ml_name.$ml_domain> │
│ │ ե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_header_default_list_owner │ ǥե list-owner │ │
│ │إå ե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_header_default_list_post │ ǥե list-post │ │
│ │إå ե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_header_default_list_software │default list-software │$fml_version │
│ │header field. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ǥե │ │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ǥե │ │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_header_default_precedence │ ǥե Precedence: │bulk │
│ │ إå ե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_header_default_x_ml_name │ ǥե X-ML-Name: │$ml_name │
│ │إå ե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│mail_queue_dir │mail queue Υǥ 쥯 ȥ │$var_dir/mail/queue │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│member_maps │ С ɤ ǧ ڤ │$primary_member_map │
│ │˸ 뤹 ٤ƤΥ С ꥹ │$admin_member_maps │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│member_total_limit │ 桼 ( Τˤ │3000 │
│ │ ) ξ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ٤Ƥ Message-ID Υ │ │
│message_id_cache_dir │ 쥯│$db_dir/message_id │
│ │ ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│message_template_dir │directory to hold │$fml_share_dir/message │
│ │message template files │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ml_admin_cgi_allowed_commands │ ƣ̤ͣ Ȥδ CGI ǵ │adduser deluser addadmin deladmin │
│ │ ޥ Υꥹ │digeston digestoff list log │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ml_admin_cgi_base_dir │ Σ̸ͣ CGI │$cgi_base_dir/$ml_domain/ml-admin/ │
│ │ ֤ ǥ 쥯 ȥꡣ │$ml_name │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ml_anonymous_cgi_allowed_commands │ │subscribe unsubscribe │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ml_anonymous_cgi_base_dir │ Σ̤ͣΰ ̿ CGI ֤ ǥ│$anonymous_cgi_base_dir/$ml_domain/ │
│ │ 쥯 ȥꡣ │$ml_name │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ml_anonymous_cgi_base_url │ Σ̤ͣΰ ̿ CGI ֤ │/~$fml_owner/cgi-bin/anonymous/ │
│ │URL Υ١ │$ml_domain/$ml_name │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ml_local_dir │ ƣ̥ͣ ǥ 쥯 ȥ │$ml_home_dir/local │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ml_local_lib_dir │ ƣ̥ͣ lib/ ǥ │$ml_local_dir/lib │
│ │쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │directory to hold ml │ │
│ml_local_message_template_dir │specific message │$ml_local_share_dir/message │
│ │template files │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ml_local_share_dir │ ƣ̥ͣ share/ ǥ │$ml_local_dir/share │
│ │ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │queue_dir moderate uses│ │
│moderate_queue_dir │as temporary incoming │$var_dir/mail/queue-moderate │
│ │queue │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │expire submitted queue │ │
│moderate_queue_expire_limit │after │14d │
│ │$moderate_expire_limit.│ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│moderator_member_maps │ С ɤ ǧ ڤ │$primary_moderator_member_map │
│ │˸ 뤹 ٤ƤΥ С ꥹ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│moderator_recipient_maps │ Ȥꤢ Ƥ 뤱 ɡ │$primary_moderator_recipient_map │
│ │Ȥ ƤϤ ʤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│newml_command_ml_admin_default_address │ ̺ͣ κݤ˺ │$fml_owner │
│ │fml_owner ͤλ ꡣ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│newml_command_postfix_template_files │ ̺ͣ (makefml newml)│include include-ctl include-error │
│ │ κݤ˺ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ̺ͣ (makefml newml)│dot-qmail dot-qmail-ctl │
│newml_command_qmail_template_files │ κݤ˺ │dot-qmail-admin dot-qmail-request │
│ │ │dot-qmail-default │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│newml_command_template_files │ ̺ͣ (makefml newml)│config.cf │
│ │ κݤ˺ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│objective_file │objective ե │$ml_home_dir/objective │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│outgoing_article_body_size_limit │ Ƥ 줿 ( │$default_mail_body_size_limit │
│ │ ) ʸ ξ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│outgoing_article_header_size_limit │ Ƥ 줿 ( │$default_mail_header_size_limit │
│ │ ) إå ξ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │fml MTA Ϥ ݤΥ │ │
│outgoing_command_mail_body_size_limit │ޥ ʸ ξ │$default_mail_body_size_limit │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │fml MTA Ϥ ݤΥ │ │
│outgoing_command_mail_header_size_limit │ޥ إå ξ │$default_mail_header_size_limit │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│outgoing_mail_cache_dir │deliver │$var_dir/mail/outgoing │
│ │ ǥ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│outgoing_mail_cache_size │ ( ) │128 │
│ │ 粿 夹 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│outgoing_mail_header_errors_to │Errors-To: ե │${mail_header_default_errors_to} │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│outgoing_mail_header_precedence │Precedence: field │${mail_header_default_precedence} │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │X-ML-Name: │ │
│outgoing_mail_header_x_ml_name │X-Sequence ˤ │${mail_header_default_x_ml_name} │
│ │ML ̾ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│postfix_verp_delimiters │verps delimieters used │+= │
│ │in postfix │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│postfix_virtual_map_file │MTA ˶ 뤿 │$domain_postfix_config_dir/virtual │
│ │virtual map ե │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_admin_member_map │ Ͽ ʤɤκݤ оݤȤʤ │file:$ml_home_dir/members-admin │
│ │ ꥹ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_admin_member_password_map │ ȴ Υѥ ɥե │file:$etc_dir/passwd-admin │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_admin_recipient_map │ Ȥꤢ Ƥ 뤱 ɡ │file:$ml_home_dir/recipients-admin │
│ │Ȥ ƤϤ ʤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_digest_member_map │ ߡ │$primary_member_map │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_digest_recipient_map │ ޤȤ ԤΥꥹ │file:$ml_home_dir/recipients-digest │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_member_map │ Ͽ ʤɤκݤ оݤȤʤ │file:$ml_home_dir/members │
│ │ ꥹ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_moderator_member_map │ Ͽ ʤɤκݤ оݤȤʤ │file:$ml_home_dir/members-moderator │
│ │ ꥹ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_moderator_recipient_map │ Ȥꤢ Ƥ 뤱 ɡ │file:$ml_home_dir/ │
│ │Ȥ ƤϤ ʤ │recipients-moderator │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_recipient_map │ Ͽ ʤɤκݤ оݤȤ │file:$ml_home_dir/recipients │
│ │ԤΥꥹ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│primary_user_db_gecos_map │primary { address => │$user_db_dir/gecos │
│ │gecos_field } map. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │primary { address => │ │
│primary_user_db_subscribe_date_map │unix time when │$user_db_dir/subscribe_date │
│ │subscribed } map. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│privileged_command_prefix │ ѤΥ ޥ │admin │
│ │ ʥ ޥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│procmail_aliases_file │MTA ˶ 뤿 │$domain_procmail_config_dir/ │
│ │aliases ե │procmailrc │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│qmail_verp_delimiters │verps delimieters used │-= │
│ │in qmail │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │MTA ˶ 뤿 │$domain_qmail_config_dir/ │
│qmail_virtual_map_file │virtual map ե ( ƥ │virtualdomains │
│ │ 졼 ) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │virtual domain │ │
│qmail_virtualdomains_file │configurations for │/var/qmail/control/virtualdomains │
│ │qmail │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│recipient_maps │ ٤ƤμԤΥꥹ │$primary_recipient_map │
│ │ │file:$ml_home_dir/actives │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│recipient_total_limit │ 桼 ( ΤˤϼԿ ) ξ │3000 │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│sendmail_virtual_map_file │MTA ˶ 뤿 │$domain_sendmail_config_dir/ │
│ │virtual map ե │virtusertable │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│sequence_file │ ֹ ¸ │$ml_home_dir/seq │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│shared_db_dir │ML ֤ǥ ١ │$ml_home_prefix/@db@ │
│ │ ۡ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ҤȤĤ SMTP ȥ │ │
│smtp_recipient_limit │ MTA Ϥ Ԥο │1000 │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │SMTP MAIL FROM: │ │
│smtp_sender │<$smtp_sender> ǻȤ ѥ │$maintainer │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│smtp_servers │ ǥե MTA ϼ ʬ │[::1]:25 127.0.0.1:25 │
│ │ ( localhost ) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│spammer_maps │ ѥޡ Ȥ ݤ │$primary_spammer_map │
│ │ ɥ쥹 Υꥹ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│spool_dir │ ¸ 쥯 ȥ │$ml_home_dir/spool │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│spool_type │ ס │plane │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │select fml_address from $sql_table │
│sql_query_find │ : ƹԤ ΤǤϤʤ│where fml_ml = '$ml_name' and │
│ │ │fml_domain = '$ml_domain' and │
│ │ │fml_address like '%®exp%' │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ : ƹԤ ΤǤϤʤ│select fml_address from $sql_table │
│sql_query_get_next_key │ │where fml_ml = '$ml_name' and │
│ │ │fml_domain = '$ml_domain' │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ : ƹԤ ΤǤϤʤ│select fml_address from $sql_table │
│sql_query_getline │ │where fml_ml = '$ml_name' and │
│ │ │fml_domain = '$ml_domain' │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │subscribe ޥ │ │
│subscribe_command_auth_type │confirmation ǧ ( │confirmation │
│ │ å ǧ ) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│subscribe_command_operation_mode │subscribe ν ư │automatic │
│ │ ˤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│system_has_alarm │alarm(2) 뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│system_has_fork │fork(2) 뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│system_has_getpwgid │getpwgid(2) 뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│system_has_getpwuid │getpwuid(2) 뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│system_has_select │select(2) 뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │root postmaster MAILER-DAEMON msgs │
│system_special_accounts │OS ȤäƤ ʥ │nobody news majordomo listserv │
│ │ 伫ư ץ Υꥹ │listproc \S+\-help \S+\-subscribe \S+│
│ │ │\-unsubscribe │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│thread_cgi_base_url │CGI Хѥ │/cgi-bin/fmlthread.cgi │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│thread_cgi_bgcolor │CGI ̤δ ܥ 顼 │#E6E6FA │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│thread_cgi_title │CGI Υ ȥ │thread tracking system interface │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│thread_db_dir │ åȴ ǡ │$shared_db_dir/thread │
│ │ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│thread_id_syntax │ å ֹ å │$ml_name/%d │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│thread_sequence_file │ å ֹ ¸ │$ml_home_dir/thread.seq │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│thread_subject_tag │Subject ˤĤ å ֹ │[$thread_id_syntax] │
│ │ å │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│thread_subject_tag_location │Subject ˤĤ å ֹ │appended │
│ │ å ξ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│thread_subject_tag_name │ åȤˤĤ │$ml_name │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│tmp_dir │ Ū ե │$ml_home_dir/tmp │
│ │ ǥ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│udb_base_dir │ML ֤ǥ ١ │$ml_home_prefix/@udb@ │
│ │ ۡ 쥯 ȥ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│unsafe_header_fields │ ֤ʤ │Return-Receipt-To │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │unsubscribe ޥ │ │
│unsubscribe_command_auth_type │confirmation ǧ ( │confirmation │
│ │ å ǧ ) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│unsubscribe_command_operation_mode │unsubscribe ν ư │automatic │
│ │ ˤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_address_compare_function │FML::Credential ǥ ɥ쥹│yes │
│ │ 뤫?( ) │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_admin_command_mail_function │admin ޥ Ȥ │no │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │WWW subscribe │ │
│use_anonymous_cgi_function │unsubscribe ꥯ Ȥ │yes │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_delivery │ 뵡ǽ │yes │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_expire │ Ť ư õ 뤫 │no │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_filter_reject_notice │ ե 륿 Ƥ 줿 Ȥ │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_header_filter │ إå ե │yes │
│ │ 륿 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_header_rewrite │ إå 뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_mime_component_filter │MIME ι ¤ ˴ ե │yes │
│ │륿 ʤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_non_mime_filter │ Ȥꤢ ߡ │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_post_function │ │${use_distribute_program:-yes} │
│ │ ⤽ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_size_filter │ │yes │
│ │ե 륿 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ SPAM å ä│ │
│use_article_spam_filter │ ǥե Ǥ │no │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_spool │ ס 쥯 ȥ │${use_spool:-yes} │
│ │ ¸ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ư õ │ │
│use_article_summary_file_expire │($use_article_expire) │no │
│ │ ɽ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_text_plain_filter │ Ƭ text/plain ʬ │yes │
│ │Ф 륿 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_article_thread_outline │ ưŪ ˥ ɤγ │no │
│ │ ä 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ Virus å │ │
│use_article_virus_filter │ä ǥե Ǥ │no │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_command_mail_filter_reject_notice │ ե 륿 Ƥ 줿 Ȥ │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_command_mail_function │ ޥ Ȥ │${use_command_mail_program:-yes} │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_command_mail_reply_preamble │ ޥ Ƭ │yes │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ޥ Ǹ │ │
│use_command_mail_reply_trailor │ ̤Υ ޥ Ĥ 뤫 │yes │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_command_mail_size_filter │ │yes │
│ │ե 륿 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_createonpost_function │CREATE-ON-POST ǽ │yes │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_debug │ ǥХå ǥե NO ˤ│no │
│ │ Ƥ 롣 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_digest_header_rewrite │ إå 뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_error_mail_analyzer_function │ 顼 ϥץ │${use_error_analyzer_program:-yes} │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │use fetchfml │ │
│use_fetchfml_article_post_function │article_post function │yes │
│ │or not. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │use fetchfml │ │
│use_fetchfml_command_mail_function │command_mail function │yes │
│ │or not. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │use fetchfml │ │
│use_fetchfml_error_mail_analyzer_function │error_mail_analyzer │yes │
│ │function or not. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_fetchfml_function │use fetchfml function │no │
│ │or not. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_html_archive │ HTML 뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_incoming_mail_body_loop_check │ إå 롼│yes │
│ │ ץ å 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_incoming_mail_cache │ │yes │
│ │ 夹 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_incoming_mail_envelope_loop_check │Envelope │yes │
│ │ 롼 ץ å 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_incoming_mail_header_loop_check │ إå 롼│yes │
│ │ ץ å 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_lock │ 뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_log │ Ȥ굡ǽ │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_log_computer_output │ ˤ䤵 ե │no │
│ │ޥåȤǥ 롣 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_log_rotate │ ե ƥ │no │
│ │ ʤ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_member_total_limit │ 桼 ( Τˤ │no │
│ │ ) ξ ߤ 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_moderate_function │use moderate function │yes │
│ │or not. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_outgoing_mail_cache │ ( ) │yes │
│ │ 夹 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_recipient_total_limit │ 桼 ( ΤˤϼԿ ) ξ │no │
│ │ ߤ 뤫 │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_smtp_log │SMTP ͻҤ ˤȤ뤫 │yes │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_spool │ ס 쥯 ȥ │yes │
│ │ ¸ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ ץ ƥ │ │
│use_thread_subject_tag │Subject Ѥ 뤫 │no │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│use_thread_track │ ץ ƥ Ȥ │yes │
│ │ │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│ │ │help get mget get mget send subscribe│
│user_command_mail_allowed_commands │ͭ ޥ │add unsubscribe bye on off digest │
│ │ │remove resign signoff chaddr confirm │
│ │ │guide info admin objective summary │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│user_db_dir │user database │$db_dir/user_info │
│ │directory. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│user_db_gecos_maps │{ address => │$primary_user_db_gecos_map │
│ │gecos_field } maps. │ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│user_db_subscribe_date_maps │{ address => unix time │$primary_user_db_subscribe_date_map │
│ │when subscribed } maps.│ │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│var_dir │ ޤ ޤ ˤĤ │$ml_home_dir/var │
├─────────────────────────────────────────────────┼───────────────────────┼─────────────────────────────────────┤
│welcome_file │welcome ե │$ml_home_dir/welcome │
└─────────────────────────────────────────────────┴───────────────────────┴─────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
( 饹ʬ )
__exceptional__ {
? $timezone
}
address {
address_compare {
? $address_compare_function_domain_matching_level
$address_compare_function_type
$use_address_compare_function
}
}
admin {
admin_command {
}
admin_command_mail {
? $admin_command_mail_allowed_commands
$admin_command_mail_auth_gpg_config_dir
? $admin_command_mail_auth_gpg_config_dir_alias
$admin_command_mail_auth_pgp_config_dir
? $admin_command_mail_auth_pgp_config_dir_alias
$admin_command_mail_restrictions
$use_admin_command_mail_function
}
admin_member {
$admin_member_maps
$primary_admin_member_map
}
admin_member_password {
$admin_member_password_maps
$primary_admin_member_password_map
}
admin_recipient {
$admin_recipient_maps
$primary_admin_recipient_map
}
admin_* {
? $admin_cgi_allowed_commands
$admin_cgi_base_dir
}
}
anonymous {
anonymous_cgi {
$anonymous_cgi_base_dir
$anonymous_cgi_expire_limit
? $ml_anonymous_cgi_allowed_commands
$ml_anonymous_cgi_base_dir
? $ml_anonymous_cgi_base_url
$use_anonymous_cgi_function
}
anonymous_command {
? $anonymous_command_mail_allowed_commands
}
}
article {
article_delivery {
? $article_delivery_transport
$use_article_delivery
}
article_digest {
$use_article_digest_function
}
article_expire {
$article_expire_limit
$use_article_expire
}
article_filter {
$article_filter_functions
$use_article_filter
}
article_filter_reject_notice {
$article_filter_reject_notice_data_type
? $article_filter_reject_notice_recipients
$use_article_filter_reject_notice
}
article_header_filter {
$article_header_filter_rules
$use_article_header_filter
}
article_header_rewrite {
$article_header_rewrite_rules
$use_article_header_rewrite
}
article_mime_component_filter {
$article_mime_component_filter_rules
$use_article_mime_component_filter
}
article_non_mime_filter {
$article_non_mime_filter_rules
$use_article_non_mime_filter
}
article_post {
? $article_post_address
? $article_post_article_thread_lifetime
$article_post_auth_gpg_config_dir
$article_post_auth_pgp_config_dir
$article_post_encrypt_gpg_config_dir
$article_post_encrypt_pgp_config_dir
$article_post_restrictions
$article_post_restrictions_reject_notice_data_type
$use_article_post_function
}
article_size_filter {
$article_size_filter_rules
$use_article_size_filter
}
article_spam_filter {
? $article_spam_filter_bogofilter_options
? $article_spam_filter_drivers
$article_spam_filter_functions
$article_spam_filter_rules
? $article_spam_filter_spamassassin_options
? $article_spam_filter_spamc_options
$use_article_spam_filter
}
article_spool {
$use_article_spool
}
article_summary_file_expire {
$use_article_summary_file_expire
}
article_text_plain_filter {
$article_text_plain_filter_rules
$use_article_text_plain_filter
}
article_thread_outline {
? $article_thread_outline_greeting_en
? $article_thread_outline_greeting_ja
$article_thread_outline_rules
$use_article_thread_outline
}
article_virus_filter {
? $article_virus_filter_clamav_options
? $article_virus_filter_drivers
$article_virus_filter_functions
$article_virus_filter_rules
$use_article_virus_filter
}
article_* {
? $article_header_list_help
? $article_header_list_id
? $article_header_list_owner
? $article_header_list_post
? $article_header_list_software
? $article_header_list_subscribe
? $article_header_list_unsubscribe
$article_message_id_cache_dir
$article_sequence_file
? $article_subject_tag
$article_summary_file
? $article_summary_file_format_address_length
? $article_summary_file_format_style
}
}
cgi {
cgi_* {
$cgi_base_dir
? $cgi_charset_en
? $cgi_charset_ja
? $cgi_default_charset
? $cgi_default_language
? $cgi_language_select_list
? $cgi_main_menu_color
? $cgi_menu_address_map_select_list
$cgi_menu_default_address_map
? $cgi_navigation_bar_color
}
}
command {
command_mail {
? $command_mail_address
$command_mail_auth_gpg_config_dir
$command_mail_auth_pgp_config_dir
$command_mail_line_length_limit
? $command_mail_reply_prompt
$command_mail_restrictions
$use_command_mail_function
}
command_mail_filter {
$command_mail_filter_functions
$use_command_mail_filter
}
command_mail_filter_reject_notice {
$command_mail_filter_reject_notice_data_type
? $command_mail_filter_reject_notice_recipients
$use_command_mail_filter_reject_notice
}
command_mail_invalid_command {
$command_mail_invalid_command_limit
}
command_mail_reply_preamble {
$use_command_mail_reply_preamble
}
command_mail_reply_trailor {
$use_command_mail_reply_trailor
}
command_mail_size_filter {
$command_mail_size_filter_rules
$use_command_mail_size_filter
}
command_mail_valid_command {
$command_mail_valid_command_limit
}
}
admin_command {
admin_command {
}
admin_command_mail {
}
}
anonymous_command {
anonymous_command {
}
}
chaddr_command {
chaddr_command {
$chaddr_command_auth_type
? $chaddr_command_operation_mode
}
}
confirm_command {
confirm_command {
$confirm_command_expire_limit
? $confirm_command_prefix
}
}
get_command {
get_command {
$get_command_request_limit
}
}
list_command {
list_command {
}
list_command_default {
$list_command_default_maps
}
}
log_command {
log_command {
? $log_command_tail_starting_location
}
}
newml_command {
newml_command {
? $newml_command_init_private_directories
? $newml_command_init_public_directories
? $newml_command_ml_admin_default_address
? $newml_command_mta_config_list
$newml_command_postfix_template_files
$newml_command_qmail_template_files
$newml_command_template_files
}
}
privileged_command {
privileged_command {
? $privileged_command_prefix
}
}
rmml_command {
rmml_command {
? $rmml_command_mta_config_list
}
}
subscribe_command {
subscribe_command {
$subscribe_command_auth_type
? $subscribe_command_operation_mode
}
}
unsubscribe_command {
unsubscribe_command {
$unsubscribe_command_auth_type
? $unsubscribe_command_operation_mode
}
}
user_command {
user_command {
? $user_command_mail_allowed_commands
}
}
createonpost {
createonpost {
$use_createonpost_function
}
createonpost_newml {
$createonpost_newml_maps
$createonpost_newml_restrictions
}
createonpost_sender {
$createonpost_sender_maps
$createonpost_sender_restrictions
}
createonpost_subscribe {
$createonpost_subscribe_maps
$createonpost_subscribe_restrictions
}
}
debug {
debug {
$use_debug
}
}
default {
default_* {
$default_mail_body_size_limit
$default_mail_header_size_limit
}
}
digest {
digest_header_rewrite {
$digest_header_rewrite_rules
$use_digest_header_rewrite
}
digest_member {
$digest_member_maps
$primary_digest_member_map
}
digest_recipient {
$digest_recipient_maps
$primary_digest_recipient_map
}
digest_* {
$digest_sequence_file
}
}
directory {
directory_* {
? $directory_default_mode
? $directory_private_mode
? $directory_public_mode
}
}
domain {
domain_* {
$domain_config_base_dir
$domain_exim_config_dir
$domain_local_dir
$domain_local_tmp_dir
$domain_mail_config_dir
$domain_postfix_config_dir
$domain_procmail_config_dir
$domain_qmail_config_dir
$domain_sendmail_config_dir
}
}
error {
error_mail_analyzer {
$error_mail_analyzer_cache_dir
? $error_mail_analyzer_cache_mode
? $error_mail_analyzer_cache_size
$error_mail_analyzer_cache_type
? $error_mail_analyzer_function
? $error_mail_analyzer_function_select_list
$error_mail_analyzer_simple_count_limit
$use_error_mail_analyzer_function
}
}
fetchfml {
fetchfml {
? $fetchfml_fetch_protocol
? $fetchfml_imap_servers
? $fetchfml_pop_servers
$fetchfml_queue_dir
$use_fetchfml_function
}
fetchfml_article_post {
? $fetchfml_article_post_password
? $fetchfml_article_post_user
$use_fetchfml_article_post_function
}
fetchfml_command_mail {
? $fetchfml_command_mail_password
? $fetchfml_command_mail_user
$use_fetchfml_command_mail_function
}
fetchfml_error_mail_analyzer {
? $fetchfml_error_mail_analyzer_password
? $fetchfml_error_mail_analyzer_user
$use_fetchfml_error_mail_analyzer_function
}
}
html {
html_archive {
? $html_archive_charset_en
? $html_archive_charset_ja
? $html_archive_default_charset
$html_archive_dir
$html_archive_index_order_type
$use_html_archive
}
html_archive_address_mask {
$html_archive_address_mask_type
$use_html_archive_address_mask
}
html_* {
? $html_tmp_base_url
$html_tmp_dir
}
}
incoming {
incoming_article {
$incoming_article_body_size_limit
$incoming_article_header_size_limit
}
incoming_command_mail {
$incoming_command_mail_body_size_limit
$incoming_command_mail_header_size_limit
}
incoming_mail_body_loop_check {
$incoming_mail_body_loop_check_rules
$use_incoming_mail_body_loop_check
}
incoming_mail_cache {
$incoming_mail_cache_dir
? $incoming_mail_cache_size
$use_incoming_mail_cache
}
incoming_mail_envelope_loop_check {
$incoming_mail_envelope_loop_check_rules
$use_incoming_mail_envelope_loop_check
}
incoming_mail_header_loop_check {
$incoming_mail_header_loop_check_rules
$use_incoming_mail_header_loop_check
}
incoming_* {
$incoming_mail_body_checksum_cache_dir
}
}
ldap {
ldap_* {
? $ldap_base_dn
? $ldap_bind_dn
? $ldap_password
? $ldap_query_add_as_ldif
? $ldap_query_delete_as_ldif
? $ldap_query_find_result_attribute
? $ldap_query_find_search_filter
? $ldap_query_get_next_key_result_attribute
? $ldap_query_get_next_key_search_filter
? $ldap_query_getline_result_attribute
? $ldap_query_getline_search_filter
? $ldap_servers
? $ldap_user
}
}
list {
list_command {
}
list_command_default {
}
list_* {
? $list_addresses
}
}
lock {
lock {
$lock_dir
$lock_file
$lock_type
$use_lock
}
}
log {
log {
$domain_local_log_file
$log_dir
$log_file
? $log_file_charset_en
? $log_file_charset_ja
? $log_file_default_charset
$log_format_type
? $log_syslog_facility
? $log_syslog_ident
? $log_syslog_options
? $log_syslog_priority
? $log_syslog_servers
$log_type
$use_log
}
log_command {
}
log_computer_output {
? $log_computer_output_engine
$use_log_computer_output
}
log_rotate {
? $log_rotate_archive_file_total
? $log_rotate_interval
? $log_rotate_policy
$log_rotate_size_limit
$use_log_rotate
}
}
mail {
mail_* {
$mail_aliases_file
? $mail_header_default_errors_to
? $mail_header_default_list_help
? $mail_header_default_list_id
? $mail_header_default_list_owner
? $mail_header_default_list_post
? $mail_header_default_list_software
? $mail_header_default_list_subscribe
? $mail_header_default_list_unsubscribe
? $mail_header_default_precedence
? $mail_header_default_x_ml_name
$mail_queue_dir
}
}
maintainer {
maintainer_recipient {
$maintainer_recipient_maps
}
maintainer_* {
? $maintainer
? $maintainer_signature
}
}
member {
member {
$member_maps
$primary_member_map
}
member_total_limit {
$member_total_limit
$use_member_total_limit
}
}
message {
message_* {
? $message_default_subject
$message_id_cache_dir
$message_template_dir
}
}
ml_local {
ml_local_* {
$ml_local_dir
$ml_local_lib_dir
$ml_local_message_template_dir
$ml_local_share_dir
}
}
moderate {
moderate {
$moderate_queue_dir
$moderate_queue_expire_limit
$use_moderate_function
}
}
moderator {
moderator_member {
$moderator_member_maps
$primary_moderator_member_map
}
moderator_recipient {
$moderator_recipient_maps
$primary_moderator_recipient_map
}
}
outgoing {
outgoing_article {
$outgoing_article_body_size_limit
$outgoing_article_header_size_limit
}
outgoing_command_mail {
$outgoing_command_mail_body_size_limit
$outgoing_command_mail_header_size_limit
}
outgoing_mail_cache {
$outgoing_mail_cache_dir
? $outgoing_mail_cache_size
$use_outgoing_mail_cache
}
outgoing_* {
? $outgoing_mail_header_errors_to
? $outgoing_mail_header_precedence
? $outgoing_mail_header_x_ml_name
}
}
path {
path_* {
$path_bogofilter
$path_bunzip2
$path_bzip2
$path_cksum
$path_clamscan
$path_compress
$path_emacs
$path_gpg
$path_gpgsplit
$path_gpgv
$path_gunzip
$path_gzcat
$path_gzip
$path_ish
$path_kakasi
$path_less
$path_lha
$path_ls
$path_makemap
$path_md5
$path_more
$path_mule
$path_namazu
$path_newaliases
$path_ng
$path_nkf
$path_perl
$path_pgp
$path_pgp5
$path_pgpe
$path_pgpk
$path_pgps
$path_pgpv
$path_postalias
$path_postconf
$path_postfix
$path_postmap
$path_sendmail
$path_spamassassin
$path_spamc
$path_spamd
$path_sum
$path_tar
$path_uuencode
$path_vi
$path_w3m
$path_xemacs
$path_zcat
}
}
post {
}
postfix {
postfix_* {
? $postfix_verp_delimiters
$postfix_virtual_map_file
}
}
procmail {
procmail_* {
$procmail_aliases_file
}
}
qmail {
qmail_* {
? $qmail_verp_delimiters
$qmail_virtual_map_file
$qmail_virtualdomains_file
}
}
recipient {
recipient {
$primary_recipient_map
$recipient_maps
$smtp_recipient_limit
}
recipient_total_limit {
$recipient_total_limit
$use_recipient_total_limit
}
}
reply_message {
}
report_mail {
report_mail_* {
? $report_mail_charset_en
? $report_mail_charset_ja
? $report_mail_default_charset
? $report_mail_subject
}
}
sendmail {
sendmail_* {
$sendmail_virtual_map_file
}
}
smtp {
smtp_log {
$use_smtp_log
}
smtp_* {
? $smtp_sender
? $smtp_servers
}
}
spammer {
spammer {
$primary_spammer_map
$spammer_maps
}
}
spool {
spool {
$spool_dir
? $spool_subdir_unit
$spool_type
$use_spool
}
}
sql {
sql_* {
? $sql_database
? $sql_password
? $sql_query_add
? $sql_query_delete
? $sql_query_find
? $sql_query_get_next_key
? $sql_query_getline
? $sql_servers
? $sql_table
? $sql_user
}
}
system {
system_* {
? $system_default_umask
? $system_has_alarm
? $system_has_fork
? $system_has_getpwgid
? $system_has_getpwuid
? $system_has_select
? $system_special_accounts
? $system_timezone
}
}
template_file {
template_file_* {
? $template_file_charset_en
? $template_file_charset_ja
? $template_file_charset_select_list
? $template_file_default_charset
}
}
thread {
thread_subject_tag {
? $thread_subject_tag
? $thread_subject_tag_location
? $thread_subject_tag_name
$use_thread_subject_tag
}
thread_track {
$use_thread_track
}
thread_* {
? $thread_cgi_base_url
? $thread_cgi_bgcolor
? $thread_cgi_title
$thread_db_dir
? $thread_id_syntax
$thread_sequence_file
}
}
user {
user_command {
}
user_db_gecos {
$primary_user_db_gecos_map
$user_db_gecos_maps
}
user_db_subscribe_date {
$primary_user_db_subscribe_date_map
$user_db_subscribe_date_maps
}
user_* {
$user_db_dir
}
}
x {
}
_file$ {
$compat_old_fml_default_config_ph_file
$deny_file
$guide_file
$help_file
$objective_file
$sequence_file
$welcome_file
}
_dir$ {
$compat_config_base_dir
$compat_old_fml_config_dir
$db_dir
$etc_dir
$event_queue_dir
$isolated_queue_dir
$listinfo_base_dir
$listinfo_dir
$listinfo_template_base_dir
$listinfo_template_dir
$ml_admin_cgi_base_dir
$shared_db_dir
$tmp_dir
$udb_base_dir
$var_dir
}
*** unclassified ***
? $file_default_mode
$isolated_queue_expire_limit
? $language_preference_order
? $ml_admin_cgi_allowed_commands
? $unsafe_header_fields
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. config.cf ǻȤäƤ褤 ؿ ɤ
1. config.cf ǻȤäƤ褤 ؿ ɤ
Ĥޤꡢ եå Ѳ ʴؿ Ǥ Ȥ Ȼפ ޤ ϡ $curproc ֥
Ȥ åɡפȤ Ƥ ޤ
ƥ 饹(e.g. FML:: ۤ ۤ Mail:: ۤ ۤ ) ˸ åɤϡ ѻߤ
Ȼפ ޤ $curproc ֥ Ȥ åɤȤ Ƥ Τ ¿ Ȼפ ޤ
: fml4 config.ph Ȱۤʤ fml8 config.cf Ǥ =cut ѿ
Ǥ perl δؿ ǤϤ =cut θ ϥեå Ĥޤ perl
ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 34. ץ κ
ץ ( ޥ 饤 )
ޤ FML::Process:: 饹 ʲ ˥⥸ 塼 դ ޤ Ǿ θ Ȥ Ƥ
FML::Process::Calender 繽 Ȥ Ƥ FML::Process::Distribute (
) ͤˤ Ǥ 礦
FML::Process:: ⥸ 塼 뤬 դ ʤ ʤ ؿ ( å )
FML::Process::Flow::ProcessStart() ʬ
FML::Process::Flow::ProcessStart() ץ ư Ƥ ޤ Τǡ äƤߤƲ
2002/07 ߡ Υ åɤ ɬ ܤǤ
new()
prepare()
verify_request()
run()
finish()
help()
ߡ Ǥ Τǡ Υ åɤ դ Ƥ Ʋ ƥ ɤζ
FML::Process ʲ Υ⥸ 塼 Ʋ åɤ 뤿 Ϻ 繽
FML::Process::Distribute ⤷ ޤ
FML::Process::Kernel
| uses-a FML::Process::{Flow,Utils} FML::Parse ...
|
A
FML::Process::
uses-a FML:: ۤ ۤ
uses-a CPAN ⥸ 塼
uses-a
FML::Process:: Ѱդ 顢 etc/modules ˥ץ ȥ 饹 δط Ʋ
ץ ̾ ɤ ⥸ 塼 ޤ etc/
command_line_options ˥ ץ ȣͣ ̵ ʤɤ Ƥ ̾ ̤ꡢ ʥ ץ
ˤĤ ƻ ꤹ Υե ޥåȤϡ ƿ Ʋ
Unix Υ ڡ ڤ Τǡ ʬ
Ĥ ץ μ¹Ԥν
Ǹ ƤӤ ̾ Υե loader link ⤷ symlink ȤǼ¹Ԥ ˤʤ
Ȥ С ɸ ȡ ϡ Τ褦 ˤʤäƤ ޤ
% ls -l /usr/local/libexec/fml
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 command@ -> loader
drwxr-xr-x 2 root wheel 512 Apr 14 18:25 current-20030414/
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 digest@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 distribute@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 error@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 fml@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 fml.pl@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 fmladdr@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 fmlalias@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 fmlconf@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 fmldoc@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 fmlhtmlify@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 fmlsch@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 fmlserv@ -> loader
-rwxr-xr-x 1 root wheel 6863 Apr 14 18:24 loader*
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 makefml@ -> loader
lrwxr-xr-x 1 root wheel 6 Apr 14 18:25 mead@ -> loader
ǥե Υץ ˤĤ Ƥϡ ȡ 餬 symlink Ƥ ޤ ȡ
symlink ( ) Ԥ Ƥ ɬ 顢etc/install.cf.in
bin_programs libexec_programs ˥ ̾ Ʋ ƥ ʳ Ǥϼ
symlink ʤäƤ ޤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ץ ( CGI )
¤ ξܺ٤ Chapter 42 Ȥ Ƥ
CGI Υץ FML::CGI:: Ȥ 饹 Υ⥸ 塼 CGI ϼ Τ
褦 ʡ ֥ Ȥδط
FML::Process::Kernel
|
A
FML::Process::CGI::Kernel uses-a CGI
|
A
FML::Process::CGI
|
A
FML::CGI::
CGI Υץ ν ޥ 饤 Ǥ ̾ Ƕ ̤ 뤿 CGI
ȤΥ⥸ 塼 FML::Process ǤϤʤ FML::CGI ʲ ֤ ޤ
FML::CGI Υ⥸ 塼 ˤ ơ FML::CGI:: դ Ʋ
FML::CGI:: ϡ դ åɤ
html_start()
html_end()
run_cgi_main()
run_cgi_title()
run_cgi_navigator()
run_cgi_menu()
run_cgi_command_help()
run_cgi_options()
ˤʤ Ǥ Ȥǰ β [25] ޤ
FML::Process::CGI verify_request() run() Ф줿 Υ
åɤȤʤäƤ ޤ
CGI ץ FML::Process::CGI Ƕ 졢run() åɤ
$curproc->html_start($args);
̤ 뤿 run_cgi_xxx() åɷ ӽФ
$curproc->html_end($args);
ν FML::CGI:: ʲ Υ åɷ ӽФ Ƥ ޤ
ʤߤˡ 2001/11 ߡ FML::Process::CGI::Kernel ץ Ȥϡ ʲ Υ å [26]
äƤ ޤ
new()
prepare()
verify_request()
run()
finish()
ˡ Խ Ϥʤ Ǥ 礦 ʤߤ FML::CGI:: run() Ф ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 35. fml8 Υ ƥ
fml4 fml8
fml8 Ū ΰ ϡ С ꥹ Ȥμ ˤ 륳 ɤ Ǥ
ƥ ݲ 줿 IO Ѥ Ƥ ޤ
ˤ 줿 Mail::Delivery 饹 Τ褦 ˻ȤäƤ ޤ
Mail::Delivery::* 륯 饹 SMTP LMTP ؤΥ ե ޤ
Ĥޤ Mail::Delivery Mail::Delivery ʲ 饹 SMTP ESMTP ؤΥ ե
륢 ץ Ǥ
Ȥ м Τ褦 ˻Ȥ ޤ
use Mail::Delivery::SMTP;
my $service = new Mail::Delivery::SMTP;
if ($service->error) { Log($service->error); return;}
$service->deliver(
{
mta => '127.0.0.1:25',
smtp_sender => 'rudo@nuinui.net',
recipient_maps => $recipient_maps,
recipient_limit => 1000,
mesage => $message
});
$message Mail::Message ֥ ȤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ֥
Υ ֥ Ȥϥ Ϥ
header -> body
header -> preamble -> part1 -> part2 -> trailor (multipart)
Τ褦 ˥ ֥ Ȥ ֿ Ĥʤ פˤʤä ǡ ¤
Mail::Message 饹 Ϥ Τ褦 ʥǡ ¤ åɤ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 ߤ Υ 塼
fml8 ( ʲ fml) γƥץ MTA 鵯ư 졢 STDIN(ɸ ) ߤ ߤޤ
fml ϡ ä ߤ ߡ ޤ ϥǥ ˽ ߤޤ (incoming queue ؽ )
ߤ ν ե ƥ β Ϥ Ȥ ޤ
ʤ Ȥ ɤߤ ꥸ ʥ Ͽ ϻĤ ޤ
⤷ exit(EX_TEMPFAIL) ޤ Ƥ OS Ǥ exit(75) Ǥ Υ
顼 ɤ Ȥ MTA ϰ Ū ʥ 顼 ä Ȥߤʤ ᡢ Υ κ
ߤƤ ( Ĥޤꡢ ʬ ⤦ ١ ǽ餫 ޤ )
Ū ʥǥ (file system full) ʤ顢 MTA κ ǥ 饤 Ԥʤ
̤ͣν ʤ ޤ ̤ͣΥ ס դ ե 륷 ƥ Υǥ
(filesystem full) Ū ȤϹͤ ˤ Τǡ ƥ Ԥ Ť ʤ ȡ äȥ 顼 ˤʤ
ǽ ⤤ Ȼפ ޤ
incoming queue ν Mail::Delivery::Queue ̸ͣ queue Ǵ ޤ
ν Ƥ Υץ κǸ Υ 塼 Ͼä
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 ֤
֤ ٤ Mail::Delivery::Queue 饹 Ѥ ơ ̸ͣ Υ 塼
塼 ä Τ FML::Process::QueueManager 饹 ( ) ʤ
ޤ
̯ ˽ ʤ ⥳ ޥ Ʊ Mail::Delivery::Queue ١
Υ 塼 Ƥ ޤ Τ ᡢ ǥ 顼 fml8
ץ ˤ Ԥʤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 ɤΤ褦 ˽Τ
å ( ƥ ȥ ) Τ褦 ˽ޤ
$curproc->reply_message( "you are not a ML member." );
ξ μԤϡ Ƥ 줿 ͤ䥳 ޥ η ʤɤ Ȥ Ĥޤ fml8 ˲ ν
ᤷ ͤǤ
ե ꤿ ե ꤿ ϼ Τ褦 ˤ ޤ
$curproc->reply_message( {
type => "text/plain; charset=iso-2022-jp",
path => "/usr/local/etc/fml/main.cf",
filename => "main.cf",
disposition => "main.cf example",
});
$curproc->reply_message( {
type => "image/gif",
path => "/some/where/logo001.gif",
filename => "logo.gif",
disposition => "attachment",
});
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 ˤ 륭 塼 Ȥ
FML::Process::QueueManager ˤ (1) Υ 塼 ե 뤬 륭 塼 ǥ 쥯 ȥ꤫
pickup 졢 (2) Mail::Message parse 졢 (3) FML::Mailer
Mail::Delivery ºݤΥ ʤ ޤ
Mail::Delivery::Queue
塼 ǥ 쥯 ȥ
FML::Process::QueueManager
塼 ǥ 쥯 ȥ
FML::Mailer
Mail::Delivery
塼 ˤϡ ݤΥ 塼 flock(2) ޤ ATOMIC
ȤäƼ Ƥ ΤǤ OS äƤ ޤ ꤹ flock
(2) ٤ Ǥ 礦
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
륭 塼 ǥ 쥯 ȥ
塼 ǥ 쥯 ȥ Τ褦 ǥ 쥯 ȥ꤫
new/
active/
incoming/
deferred/
info/sender/
info/recipients/
info/transport/
isolated/
info/ ˤ envelope isolated/ ϳ 줿 ʥ ۤ 100 %
SPAM) ޤ incoming/ incoming queue Ǥ Υǥ 쥯 ȥ
outgoing Ǥ
outgoing 塼 ե ϡ new/ ˺ ޤ 塼 ե
λ OK Ȥʤä new/ active/ ˰ Ĥޤ active/
ˤ Ǥ Ƥ ΤǤ
ǥ 顼 ä 顢new/ ˻ij Ĥ ˥ ߤϾä 褦 ˤ Ƥ ޤ
Ф餯 ϻĤ Ǥ Τ ϵ߽Ф Ȥ⤤ ޤ ͡
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
queue ǥ 쥯 ȥ
$queue_id object Ȥ lock() unlock() åɤ ޤ
active/$queue_id ե Ƥ flock(2) ƥॳ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
塼 ƥ
2004 ưʹߡ fml8 ƥ 塼 ƥ Ƥ ޤ fml8
Ǥκ Ȥʤ θ ¼ fml8 륵 Фȸ äƤ
褯 ʤä 櫓 Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: FML::Mailer
FML::Process::QueueManager ȤäƤ ߤʤΤ Ω ⥸ 塼
Ȥ Ǥ
reply_message() åɤ Ǥ⤷ Ƥ ޤ Τǡ FML::Mailer ֤ ȤϤʤ ⤷
Ȥ reply_message() ʳ åɤ 뤫 ⤷
ɤ äƤʤ 褦 ʤ FML::Process::QueueManager ˹ ʤΤǤ 礦
ͤ ᡢHOOK ʤɤǤ FML::Mailer ϻȤ 褦 ˤ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
˴ؤ TIPS
1. ʸ Ƥ˱ Ѥ
1. ʸ Ƥ˱ Ѥ
ִ ơ ž ꤹ ͤ ޤ 礦 Ȥ С A B C ˱
recipients.A
recipients.B
recipients.C
դ ޤ ξ HOOK Ǿ å Ĥ
if ( A ˥ޥå ) {
$config->set('recipient_maps', "recipients.A");
}
Τ褦 ʥ ɤ С Ƥ˱ Ѥ Ȥ
recipient_maps ϥե λ Ǥ ǽ ʥѥ
IO::Adapter 饹 Τ ٤ƤǤ MySQL LDAP Ȥ Ȥ
ä Ȥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 36. / ޤȤ
֤ޤȤ פ ϡ
/usr/local/libexec/fml/digest ͣ
Ū cron Ԥ Ʋ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│fml4 Τ褦 ʥ ٤ Ͻ │
│ │
│ Ȥ fml8 Ǥϡ fml4 Τ褦 ʥ ٤ μ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޤȤ ǻȤ 뷲
$ml_home_dir/ ʲ Ρ֤ޤȤᤪ Ϣ ե ˤϼ Τ褦 ʤ
seq-digest
members-digest
recipients-digest
seq-digest ϺǸ ä Ƥ ޤ
members-digest ϥ ߡ ǡ recipients-digest ޤȤᤪ ꥹ ȤǤ (members
recipients ϥڥ ʤΤǡ ߡ Ǥ Ƥ ޤ )
IO::Adapter 饹 Ѥ Ȥ ǡ Υꥹ
$digest_recipient_maps Ǥ mysql ʤɤ Ѳ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: ȴ Υ ޥ 뤫
digest ޥ ΤޤȤ ʤ顢 Ǥ 礦 (fml-devel 313)
ǡ ⡢ ͡ ٤ ꤬ 褦 ˤ 뤳 Ȥ ΤǤ 礦 (
٤ Τ OK ?)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
makefml ޥ
( ʲ Υ ޥ ϼ )
makefml digest $ml $address on
makefml digeston $ml $address
makefml digest $ml $address off
makefml digestoff $ml $address
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
admin ޥ
( ʲ Υ ޥ ϼ )
admin digest $address on
admin digest $address off
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
桼 ޥ
( )
digest on
digest off
(̤ ) confirmation ֤ פǡ 褤 Ǥ 礦 ͡
confirm ǥ ꥷ Ȥ ơ ɥ쥹 Υ ޥ Υǥե ϸ
ޤ 礦 ˾ ǤƤ Ȥ Ȥˤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI
( )
digeston
digestoff
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
recipes
1. ޤȤ Ϥ ļ¹Ԥ Ƥ Τ
2. ޤȤ ΰ ̷ Υǥե ѹ
3. makefml add λ ˤޤȤ ѥ
4. ޤȤ Υ ɤ ɤ ̥ե Ͽ
1. ޤȤ Ϥ ļ¹Ԥ Ƥ Τ
ĤǤ⤫ ޤ ޤ
2. ޤȤ ΰ ̷ Υǥե ѹ
Ǥ ޤ ߤ MIME/Multipart ݡ Ȥ Ƥ ޤ ¾
3. makefml add λ ˤޤȤ ѥ
Ǥ ޤ ߤ MIME/Multipart ݡ Ȥ Ƥ ޤ ¾
4. ޤȤ Υ ɤ ɤ ̥ե Ͽ
HOOK ФǤ ޤ
[Example]
$article_digest_prepare_start_hook = q{
$config->{ log_file } = "/some/where/log.digest";
};
fml8 Ǥϡ HOOK ƥץ Ȥ ̸Ĥ ǡ Ȥ ޤ դ˸
fml4 Ǥϥᥤ ɤ϶ ͭ HOOK Ϥä Υ ʤ ä Τǡ μ
Ȥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 37.
ν
֤ Σ̤ͣ ܿ ѤȲ 롣 ơ ư ϡ Ĥͤ ܸ
Ȥ Ǥ ޤ ޤ ꤬ ͤ ޤ
Υ ϡ ̺ͣ ˲ Ѥ
ˡ ְ ( 줬 ͤ ) Ƥ Ƥ⡢ 顼
֤ ޤ
ˡ ͤ äƤ Ƥ Ȥ Ƥ⡢ ܸ줬 Ȥ ʤ
⤷
å Accept-Language: Ƥˤʤ 礦
餯 ϥ Ƥˤʤ 礦 ơ å Accept-Language: 뤹
Accept-Language: Ĥ Ƥ
Ȥ С Accept-Language: ja ʤɤȤ Ƥ ja ͥ ʤ
顢 ä ʤ ġ ܿͤ help Ȥ äƤ
us-ascii ֤ ٤ ʤΤ iso-2022-jp ֤ ٤ ʤΤ ץ ˤ Ǥ ޤ
Ȥ С ϡ ɤ Ƚ Ǥ 礦
:
From: rudo@example.co.jp
Subject: help
mime-version: 1.0
content-type: text/plain; charset=us-ascii
help
charset ˹ͤ Ѹ ٤ Ǥ ϡ ޤ Ѹ줷 ޤޤʤ
charset=us-ascii ˤʤäƤ Ǥ ʤ Τǡ Σ̤ͣ ( Τ
) ꤵ 顢 Ѹ ξ ֤ ٤ Ǥ 礦
դˡ Ѹ ̤ͣȤ ʤ顢 Ѹ ֤ Ǥ Ϥ Ǥ
衢 Accept-Lanaguage: ꤵ º Ť Ǥ Ѹ ͣ
(language_preference_order = en) ξ Ǥ⡢ Accept-Lanaguage: ja ʤ Ǥ
ܸ Ǥ 礦 fml8 ɸ Ǥ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Σͣ
language_preference_order Ȥ 줬 ǥե Σ̤ͣǤϼ Τ褦 ˻ ꤵ
ޤ
language_preference_order = ja en
Υҥ Τ褦 ʽ Ƥ ޤ ʲ Ǥϡ Ƥ å
ƹͤ Ƥߤޤ 礦
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: ja, en
ˤ ֤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: en
Ѹ ˤ ֤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: Content-Type: Ǥ charset=iso-2022-jp
ˤ ֤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: Content-Type: Ǥ charset=us-ascii
ˤ ֤ Ƥ Ǥ ޤ Ѹ ֤ ٤ ȹͤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: Content-Type:
ˤ ֤ Ƥ Ǥ ޤ Ѹ ֤ ٤ ȹͤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ѹ Σͣ
language_preference_order Ȥ Τ褦 ˻ ꤵ
language_preference_order = en
Υҥ Τ褦 ʽ Ƥ ޤ ʲ Ǥϡ Ƥ å
ƹͤ Ƥߤޤ 礦
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: ja, en
ˤ ֤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: en
Ѹ ˤ ֤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: Content-Type: Ǥ charset=iso-2022-jp
ˤ ֤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: Content-Type: Ǥ charset=us-ascii
Ѹ ˤ ֤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Accept-Language: Content-Type:
Ѹ ˤ ֤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 38. ( )
( ֥ ) åɤξܺ٤ˤĤ Ƥ Mail::Message 饹 Ʋ
Mail::Message 饹 ˡ Ƥ ޤ Mail::Bounce Mail::Delivery
ᡢ Mail::Message 饹 ˰ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message 饹
إå ˻Ϥޤ ǥ ( ) ³ ޤ MIME/Multipart Τ褦 ˡ ܥǥ ʬ
( ѡ ) 뤳 Ȥ⤢ ʤ ¤ Ǥ
( Ȥξ )
header -> body
( ޥ ѡ ȥ )
header -> preamble -> part1 -> part2 -> trailor
顢 κ ¤ ˤ Ϥ
ꥹ ȥɥ饤 Фˤϡ ե 륿 ơ β Ϥ Ȥ Ƥ
¿
ν 塼 Mail::Message 饹 ꡢ ¤
뤿 Ƥ ޤ Mail::Message 饹 Mail::Bounce
Mail::Delivery ᡢ ¿ Υ⥸ 塼 Ȥ Ƥ ޤ
Ȥ С Mail::Message 饹 Τ褦 ʥ ɤ Ǥ
my $fh = new FileHandle $file;
my $msg = Mail::Message->parse( { fd => $fh } );
use FML::Mailer;
my $obj = new FML::Mailer;
$obj->send( {
sender => $sender,
recipient => $rcpt,
message => $msg,
});
֥ Ϥ դ Ȥ Υ 륳 ɤǤ [27]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message::Parse 饹
ߡ 饹 Ǥ Mail::Message::Compose γ ص äƤ ޤ
ޤ꿼 Ϥ
ѡ μ Τ Mail::Message 饹
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message::Compose 饹
롢 ˥ ޥ ɤ ۤ Ѥ 륯 饹 Ǥ
ñ ʤ륢 ץ Ǥ CPAN MIME::Lite 饹 Ǥ Υꥯ
Ȥ MIME::Lite 饹 ش ꤲ ޤ
Ȥ åɤˤĤ Ƥξܺ٤ MIME::Lite 饹 Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: reply_message_nl() λȤ
fml8 Ǥϡ Τ reply_message_nl() [28] åɤ
$curproc->reply_message_nl('error.already_member',
'already member',
{ _arg_address => $address });
Τ褦 ʸƤӽФ 뤳 Ȥˤ Ƥ ޤ
δؿ /usr/local/share/fml/ С /message/ /error/already_member Ȥ
ƥ 졼 Ȥ Ѥ ƥ ۤ ޤ
$_arg_ Ȥ С
$_arg_address
reply_message_nl() åɤΰ Ȥ ϥå ե ͤ
Ǥ С ƥ 졼 $_arg_address åɤΰ ˤ
_arg_address ͤ
ޤ config.cf ѿ Ǥ Ǥ Ȥ Хƥ
졼 $ml_name config.cf ˣͣ ˼ ưŸ
Τ ᡢ Ĥޤ config.cf ѿȤ֤Ĥ 褦 ˤ 뤿 ᡢ $_arg_ ʤɤȤ
prefix Ƥ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[ ] : 顼 ֤
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ Ͽ Τ ᡢ Ĥƹͻ α ޤ ߤμ ʲ ε ҤȤϰۤʤꡢ │
│ ե ƥ 졼 ȥե ΤǤ │
└─────────────────────────────────────────────────────────────────────────────┘
̥ͣɥ饤 Фϡ Ŭ 顼 Ԥ ֤ ɬ ƥ 顼 Ԥθ
¸ Ǥʤ Ȥ ʤ Ǥ 礦
ơ ¿ Ѵ Ƥ Ф ɬ ơ Τ
ɬ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml4 ξ
fml4 ˤ
Mesg(*e, , ǥե Υ , ˻Ȥ );
η ǸƤӽФ
Mesg() /usr/local/fml/messages/Japanese/ ʲ ˤ 뷲 Ф ơ ɸ
ԤʤäƤ ޤ ƥե ϡ ƥ ꤴ Ȥ 줿 ɤȥ
ޤ Ĥޤ ե ʣ ɤ ޤ
Ȥ С ɤ not_found ξ /usr/local/fml/messages/Japanese/kern ե
not_found Ȥ ޤ
ޤ ʻ ͤǤϤ äơ locale Ũ Ȥ 櫓 Ǥ ΤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Ǥϡ ɤ
Υե Υ ɤ ĤΤȡ ƥ ꤴ Ȥ ɤ ĤΤȤǤϡ ɤ 餬
ޥ 䤹 Ǥ 礦 ε η Ǥϡ ʤ 褦 ˻פ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
X/Open Portability Guide Issue 4 Version 2 (``XPG4.2'')
XPG (X/Open ε )
catgets(catd, set_id, msg_id, char *s);
ǡ LOCALE_ ǻ ꤵ 줿 Ƥ ޤ [29] locale λȤ ϼ Τ褦 ʴ ˤʤ
printf(catgets(catd, 30, 4, "%s: Internal match error.\n"), progname);
λ catgets() locale ե ( : /usr/pkg/share/nls/ja_JP.EUC/ ץ
̾.cat ) se 30 4 Υ ˥ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 Ȥꤢ
locale б 뤫 Ȥ Ǥ makefml Ƭ ˡ Ƽ拾 ޥ
Υ 顼 ܸ첽 locale Ƥ ΤⰭ Ϥʤ Τ Ȥ ޤ
ξ locale ݤ 뤿
/usr/local/lib/fml/ С /messages/ja_JP.EUC/kern
1: %s ϸ Ĥ
2: %s %d Υ 顼 Ǥ
Ȥ ä ˤ Ƥ ȡ Ȥ Ȥ Ǥ
դˡ Υ ɤ Ȥ ̤Υե Ƥ ǽ Ǥ ΰ Υ ɤ
ޥ Ǥ
⤷ 饹 뤳 Ȥǻ Ƥߤ뤳 Ȥˤ
FML::Message::ja::
Ȥ 饹 뤳 Ȥˤʤ 礦 Ȥ
FML::Message::ja::not_found
ʤɤ 200 300 ĤΥե 뤬 Ȥˤʤ
• ե 뤬 Х ʤ ( դ ơ ޥ 䤹 ʤ )
• ե 뤬 Х ʤ뤳 Ȥ locale ݤ ʤ ʤ뤬 locale
礦
Ȥ⡢ ʣ ե 뤫 ĤΥե ϴ ʤΤǡ ٤ ñ ̤ˤʤäƤ 뤳 Ȥϡ
Τ ⤷
ޤ ƥ ƥ 졼 ȤϤɤΤ褦 ʤ Ǥ Ǥ 礦 ξ
sub not_found
{
my .. = @_;
return <<"_EOF_"
$sender Ϥɤ
_EOF_
}
Ȥ ä ؿ 뤳 Ȥ ޤ Ĥޤꡢ ñ ʤ Ϥʤ
ˤ 뤳 Ȥ 櫓 Ǥ ˥ ޥ 䤹 Ǥ 礦
locale 顢 ʵ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 39. ե 륿
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ ϤǤ ե 륿 Ȥϡ ˤ ʤ ¤ Ƥ 줿 륿 פ Ƥ ޤ│
│ │
│ │
│ Ρֵ 륿 ץ ƥ FML::Filter 饹 ˼ ޤ │
│ │
│ ֵ ǤϤʤ ֥ ޥ оݤȤ ե 륿 ƥ ɤ ޤ │
│ ξ ü ե 륿 ƥब FML::Filter Υ ֥ 饹 ˤ ϸ¤ │
│ Ʋ ߡ ޥ ݤȤ ե 륿 ϡ ޥ 饹 ˼ 줿 │
│ե 륿 ƥ ƤӽФ Ƥ ޤ Ȥ Х ޥ ޥ ¤ 뵡ǽ( ե │
│륿) FML::Command::Filter 饹 ô Ƥ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե 륿 γ
륿 ˤ 礭 ʬ ƻ ढ ֥إå Ф 륿
֥ Ф 륿 MIME ¤ ˤ ե 륿(mime component filter) פΣ ĤǤ
Ȥ ֥ Ф 륿 ˤ⡢ MIME Ǥʤ 륿
text/plain Ф 륿 ǡ ʬ ͼ ब
⤷
ޤ ʶ
header
body
non-mime
permit / reject (fml 4.0 content filter !MIME)
mime component filter
(fml 4.0 content filter )
text/plain filter
ja, en, ... ( ¸ ե 륿)
¸ ѡ (M$ GUID scanner Τ )
Ƭ ʬ text/plain ѡ Ȥ Ф 륷 å å
ե 륿 ( 륹/SPAM å ӽФ )
clamav
spamassassin
bogofilter
ϡ ˡ SMTP ⤷ LMTP virus scanner ʤ ƤӽФ
(postfix content_filter ) ɬ Ȼפ ΤǤ ( Postfix Ǥ Ф
Ȥ ⤤ ޤ Τ ) Ƥ ޤ
ޤ ʳ ˥ȥ å ١ Υե 륿 ( ۤȤ ̤ ΤDz _o_)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե 륿 ˴ؤ
䥳 ޥ ä ǽ ֥ե 륿 Ȥ ֻȤ ե 륿 롼
ʤɤ ѿ ޤ
̾ § Ϥδ ܤϰʲ ΤȤ
use_ ӥ _filter = yes no
ӥ _filter_functions = ǽA ǽB
use_ ǽA = yes no
ǽA_rules = 롼 1 롼 2
# Descriptions:
# History: fml8 Ǥϡ Ĥ Υե 륿 ¤ 礵 줿
# fml4 Ǥϡ Σ Ĥε ǽ Ƥ 롣
# $USE_DISTRIBUTE_FILTER
# $INCOMING_MAIL_SIZE_LIMIT
# ADD_CONTENT_HANDLER()
# Value: YES_OR_NO
# Examples: yes
use_article_filter = yes
# Descriptions:
# History:
# Value: MIX (
# article_size_filter
# article_header_filter
# article_non_mime_filter
# article_mime_component_filter
# article_text_plain_filter
# article_spam_filter
# article_virus_filter
# )
# Examples:
article_filter_functions = article_size_filter
article_header_filter
article_non_mime_filter
article_mime_component_filter
article_text_plain_filter
article_spam_filter
article_virus_filter
# Descriptions: ե 륿 뤫
# History: no
# Value: YES_OR_NO
# Examples:
use_article_size_filter = yes
# Descriptions: ե 륿 Υ롼 롣
# ɤΥ롼 å ʤ ʤ顢 Ƥ
# History:
# Value: MIX ( check_header_size
# check_body_size
# permit
# )
# Examples:
article_size_filter_rules = check_header_size
check_body_size
permit
# Descriptions: إå ե 륿 뤫
# History: disabled by default.
# "yes" always if $USE_DISTRIBUTE_FILTER is yes.
# Value: YES_OR_NO
# Examples:
use_article_header_filter = yes
# Descriptions: ե 륿 Υ롼 롣
# ɤΥ롼 å ʤ ʤ顢 Ƥ
# History: check_date ˳ ΤϤʤ
# Value: MIX (
# check_message_id
# check_date
# permit
# )
# Examples:
article_header_filter_rules = check_message_id
check_date
permit
# Descriptions: Ȥꤢ ߡ
# History: 4.0 content filter ǡ !MIME ˤ
# ơ ǥե Ǥ no Ȥ Ȥˤʤ롣
# Value: YES_OR_NO
# Examples:
use_article_non_mime_filter = yes
# Descriptions: Ȥꤢ ߡ
# History: ʤ
# Value: MIX ( permit reject_empty_content_type )
# Examples: permit
article_non_mime_filter_rules = reject_empty_content_type
permit
# Descriptions: MIME ι ¤ ˴ ե 륿 ʤ
# History: 4.0 content filter ǥե Ǥ no
# Value: YES_OR_NO
# Examples:
use_article_mime_component_filter = yes
# Descriptions: ե
# History: 4.0 @CONTENT_HANDLER
# Value: FILE
# Examples:
article_mime_component_filter_rules = $fml_config_dir/mime_component_filter
# Descriptions: Ƭ text/plain ʬ Ф 륿
# ʥ å å
# History: 4.0 EnvelopeFilter
# $USE_DISTRIBUTE_FILTER yes ξ
# ʲ Υ롼 Ⱦʬ 餤 ưŪ
# Value: YES_OR_NO
# Examples:
use_article_text_plain_filter = yes
# Descriptions: ƥ ؤΥե 륿 Υ롼 롣
# Τˤ Ƥ ٤ ʤ Υ롼 ( ޥå ʤ ʤ ̤ )
# History: See kern/libenvf.pl for more detail.
# [DISABLED BY DEFAULT]
#
# reject_not_iso2022jp_japanese_string
# <=> FILTER_ATTR_REJECT_INVALID_JAPANESE
# reject_old_fml_command_syntax
# <=> FILTER_ATTR_REJECT_COMMAND
# reject_japanese_command_syntax
# <=> FILTER_ATTR_REJECT_2BYTES_COMMAND
#
# [ENABLED BY DEFAULT]
#
# reject_null_mail_body
# <=> FILTER_ATTR_REJECT_NULL_BODY
# reject_invalid_fml_command_syntax
# <=> FILTER_ATTR_REJECT_INVALID_COMMAND
# reject_one_line_message
# <=> FILTER_ATTR_REJECT_ONE_LINE_BODY
# reject_ms_guid
# <=> FILTER_ATTR_REJECT_MS_GUID
#
# Note: permit by default
# Value: MIX (
# reject_not_iso2022jp_japanese_string
# reject_null_mail_body
# reject_one_line_message
# reject_old_fml_command_syntax
# reject_invalid_fml_command_syntax
# reject_japanese_command_syntax
# reject_ms_guid
# permit
# )
# Examples:
article_text_plain_filter_rules = reject_not_iso2022jp_japanese_string
reject_null_mail_body
reject_one_line_message
reject_old_fml_command_syntax
reject_invalid_fml_command_syntax
reject_japanese_command_syntax
reject_ms_guid
permit
# Descriptions: SPAM å ä ǥե Ǥ
# ޤ ͭ إå SPAM Ǥ 뤳 Ȥ Τ餻
# ե ᤵ ǥե
# History: none
# Value: YES_OR_NO
# Examples: no
use_article_spam_filter = no
# Descriptions: SPAM 줿 ɤ 뤫
# History: none
# Value: MIX ( reject ignore header_rewrite )
# Examples: header_rewrite
article_spam_filter_rules = header_rewrite
# Descriptions: SPAM å Ȥ ƻȤ ץ
# ʣ ʣ ץ ˻
# History: none
# Value: MIX ( spamassasin spamc bogofilter )
# Examples: bogofilter
article_spam_filter_drivers = bogofilter
# Descriptions: Virus å ä ǥե Ǥ
# History: none
# Value: YES_OR_NO
# Examples: no
use_article_virus_filter = no
# Descriptions: 륹 줿 ɤ 뤫
# History: none
# Value: MIX ( reject ignore header_rewrite )
# Examples: reject
article_virus_filter_rules = reject
# Descriptions: 륹 å Ȥ ƻȤ ץ
# ʣ ʣ ץ ˻
# History: none
# Value: MIX ( clamscan )
# Examples: clamscan
article_virus_filter_drivers = clamscan
# Descriptions: ե 륿 Ƥ 줿 Ȥ
# History: maintainer ˤϾ 줿 Ȥ Τ餻 뤬
# sender Ф Ƥ $FILTER_NOTIFY_REJECTION (= 0 by default)
# ǥե Ǥϡ ˤΤ Τ餻 롣
# Value: YES_OR_NO
# Examples: yes
use_article_filter_reject_notice = yes
# Descriptions: 顼 Τ 餻 μ
# History: 4.0 Ǥ maintainer Ƥϥϡ ɥ ǥ Ǿ 餻 롣
# sender Ƥ $FILTER_NOTIFY_REJECTION 椵
# ǥե Ǥ Τ餻 ʤ
# Value: MIX ( maintainer sender )
# Examples: maintainer sender
article_filter_reject_notice_recipients = maintainer
sender
# Descriptions: ɤΤ褦 ˥ե ɤ 뤫
# 륹 ʤɤ θ ʸ Ȥ ⤦
# History: 4.0 Ǥ ϡ ɥ ǥ
# Value: SELECT ( multipart string )
# Examples: string
article_filter_reject_notice_data_type = string
# Descriptions:
# History:
# Value: YES_OR_NO
# Examples:
use_article_spam_filter = no
# Descriptions: list up driver names used as spam checker.
# History: none
# Value: MIX ( spamassassin spamc bogofilter )
# Examples: bogofilter
article_spam_filter_functions = bogofilter
# Descriptions: exit non-zero status code when spam caught if "-e" specified.
# History: none
# Value: COMMAND_LINE_OPTIONS
# Examples: -e
article_spam_filter_spamassassin_options = -e
# Descriptions: spamc optoins. "-c" means check only.
# History: none
# Value: COMMAND_LINE_OPTIONS
# Examples: -c
article_spam_filter_spamc_options = -c
# Descriptions: "-e" implies embedded mode.
# History: none
# Value: COMMAND_LINE_OPTIONS
# Examples: -e
article_spam_filter_bogofilter_options = -e
# Descriptions:
# History:
# Value: YES_OR_NO
# Examples:
use_article_virus_filter = no
# Descriptions: list up driver names used as virus checker.
# History: none
# Value: MIX ( virusassassin virusc bogofilter )
# Examples: bogofilter
article_virus_filter_functions = clamav
# Descriptions: --mbox needed for mail files.
# History: none
# Value: COMMAND_LINE_OPTIONS
# Examples: --quiet --mbox
article_virus_filter_clamav_options = --quiet --mbox
# Descriptions:
# History:
# Value: YES_OR_NO
# Examples:
use_command_mail_filter = yes
# Descriptions:
# History:
# Value: MIX ( command_mail_size_filter )
# Examples:
command_mail_filter_functions = command_mail_size_filter
# Descriptions: ե 륿 Ƥ 줿 Ȥ
# History: 4.0 Ǥϥϡ ɥ ɤ ä 褦 ʡ
# Value: YES_OR_NO
# Examples: yes
use_command_mail_filter_reject_notice = yes
# Descriptions: 顼 Τ 餻 μ
# History: 4.0 Ǥϥϡ ɥ ɤ ä 褦 ʡ
# Value: MIX ( maintainer sender )
# Examples: maintainer sender
command_mail_filter_reject_notice_recipients = maintainer
sender
# Descriptions: ɤΤ褦 ˥ե ɤ 뤫
# 륹 ʤɤ θ ʸ Ȥ ⤦
# History: 4.0 Ǥ ϡ ɥ ǥ
# Value: SELECT ( multipart string )
# Examples: string
command_mail_filter_reject_notice_data_type = string
# Descriptions: ե 륿 뤫
# History:
# Value: YES_OR_NO
# Examples:
use_command_mail_size_filter = yes
# Descriptions: ե 륿 Υ롼 롣
# ɤΥ롼 å ʤ ʤ顢 ޥ ǧ
# History:
# Value: MIX (
# check_header_size
# check_body_size
# check_command_limit
# check_line_length_limit
# permit
# )
# Examples:
command_mail_size_filter_rules = check_header_size
check_body_size
check_command_limit
check_line_length_limit
permit
# Descriptions:
# History:
# Value: FILE
# Examples:
path_bogofilter = @BOGOFILTER@
# $article_digest_finish_end_hook = q{ 1;};
# $article_digest_finish_start_hook = q{ 1;};
# $article_digest_prepare_end_hook = q{ 1;};
# $article_digest_prepare_start_hook = q{ 1;};
# $article_digest_run_end_hook = q{ 1;};
# $article_digest_run_start_hook = q{ 1;};
# $article_digest_verify_request_end_hook = q{ 1;};
# $article_digest_verify_request_start_hook = q{ 1;};
# $article_filter_end_hook = q{ 1;};
# $article_filter_start_hook = q{ 1;};
# $article_header_rewrite_end_hook = q{ 1;};
# $article_header_rewrite_start_hook = q{ 1;};
# $article_post_finish_end_hook = q{ 1;};
# $article_post_finish_start_hook = q{ 1;};
# $article_post_prepare_end_hook = q{ 1;};
# $article_post_prepare_start_hook = q{ 1;};
# $article_post_run_end_hook = q{ 1;};
# $article_post_run_start_hook = q{ 1;};
# $article_post_verify_request_end_hook = q{ 1;};
# $article_post_verify_request_start_hook = q{ 1;};
# $command_mail_filter_end_hook = q{ 1;};
# $command_mail_filter_start_hook = q{ 1;};
# $command_mail_finish_end_hook = q{ 1;};
# $command_mail_finish_start_hook = q{ 1;};
# $command_mail_prepare_end_hook = q{ 1;};
# $command_mail_prepare_start_hook = q{ 1;};
# $command_mail_run_end_hook = q{ 1;};
# $command_mail_run_start_hook = q{ 1;};
# $command_mail_verify_request_end_hook = q{ 1;};
# $command_mail_verify_request_start_hook = q{ 1;};
# $createonpost_finish_end_hook = q{ 1;};
# $createonpost_finish_start_hook = q{ 1;};
# $createonpost_prepare_end_hook = q{ 1;};
# $createonpost_prepare_start_hook = q{ 1;};
# $createonpost_run_end_hook = q{ 1;};
# $createonpost_run_start_hook = q{ 1;};
# $createonpost_verify_request_end_hook = q{ 1;};
# $createonpost_verify_request_start_hook = q{ 1;};
# $distribute_finish_end_hook = q{ 1;};
# $distribute_finish_start_hook = q{ 1;};
# $distribute_prepare_end_hook = q{ 1;};
# $distribute_prepare_start_hook = q{ 1;};
# $distribute_run_end_hook = q{ 1;};
# $distribute_run_start_hook = q{ 1;};
# $distribute_verify_request_end_hook = q{ 1;};
# $distribute_verify_request_start_hook = q{ 1;};
# $error_mail_analyzer_finish_end_hook = q{ 1;};
# $error_mail_analyzer_finish_start_hook = q{ 1;};
# $error_mail_analyzer_prepare_end_hook = q{ 1;};
# $error_mail_analyzer_prepare_start_hook = q{ 1;};
# $error_mail_analyzer_run_end_hook = q{ 1;};
# $error_mail_analyzer_run_start_hook = q{ 1;};
# $error_mail_analyzer_verify_request_end_hook = q{ 1;};
# $error_mail_analyzer_verify_request_start_hook = q{ 1;};
# $faker_finish_end_hook = q{ 1;};
# $faker_finish_start_hook = q{ 1;};
# $faker_prepare_end_hook = q{ 1;};
# $faker_prepare_start_hook = q{ 1;};
# $faker_run_end_hook = q{ 1;};
# $faker_run_start_hook = q{ 1;};
# $faker_verify_request_end_hook = q{ 1;};
# $faker_verify_request_start_hook = q{ 1;};
# $fetchfml_finish_end_hook = q{ 1;};
# $fetchfml_finish_start_hook = q{ 1;};
# $fetchfml_prepare_end_hook = q{ 1;};
# $fetchfml_prepare_start_hook = q{ 1;};
# $fetchfml_run_end_hook = q{ 1;};
# $fetchfml_run_start_hook = q{ 1;};
# $fetchfml_verify_request_end_hook = q{ 1;};
# $fetchfml_verify_request_start_hook = q{ 1;};
# $fmladdr_finish_end_hook = q{ 1;};
# $fmladdr_finish_start_hook = q{ 1;};
# $fmladdr_prepare_end_hook = q{ 1;};
# $fmladdr_prepare_start_hook = q{ 1;};
# $fmladdr_run_end_hook = q{ 1;};
# $fmladdr_run_start_hook = q{ 1;};
# $fmladdr_verify_request_end_hook = q{ 1;};
# $fmladdr_verify_request_start_hook = q{ 1;};
# $fmlalias_finish_end_hook = q{ 1;};
# $fmlalias_finish_start_hook = q{ 1;};
# $fmlalias_prepare_end_hook = q{ 1;};
# $fmlalias_prepare_start_hook = q{ 1;};
# $fmlalias_run_end_hook = q{ 1;};
# $fmlalias_run_start_hook = q{ 1;};
# $fmlalias_verify_request_end_hook = q{ 1;};
# $fmlalias_verify_request_start_hook = q{ 1;};
# $fmlconf_finish_end_hook = q{ 1;};
# $fmlconf_finish_start_hook = q{ 1;};
# $fmlconf_prepare_end_hook = q{ 1;};
# $fmlconf_prepare_start_hook = q{ 1;};
# $fmlconf_run_end_hook = q{ 1;};
# $fmlconf_run_start_hook = q{ 1;};
# $fmlconf_verify_request_end_hook = q{ 1;};
# $fmlconf_verify_request_start_hook = q{ 1;};
# $fmldoc_finish_end_hook = q{ 1;};
# $fmldoc_finish_start_hook = q{ 1;};
# $fmldoc_prepare_end_hook = q{ 1;};
# $fmldoc_prepare_start_hook = q{ 1;};
# $fmldoc_run_end_hook = q{ 1;};
# $fmldoc_run_start_hook = q{ 1;};
# $fmldoc_verify_request_end_hook = q{ 1;};
# $fmldoc_verify_request_start_hook = q{ 1;};
# $fmlhtmlify_finish_end_hook = q{ 1;};
# $fmlhtmlify_finish_start_hook = q{ 1;};
# $fmlhtmlify_prepare_end_hook = q{ 1;};
# $fmlhtmlify_prepare_start_hook = q{ 1;};
# $fmlhtmlify_run_end_hook = q{ 1;};
# $fmlhtmlify_run_start_hook = q{ 1;};
# $fmlhtmlify_verify_request_end_hook = q{ 1;};
# $fmlhtmlify_verify_request_start_hook = q{ 1;};
# $fmlpgp_finish_end_hook = q{ 1;};
# $fmlpgp_finish_start_hook = q{ 1;};
# $fmlpgp_prepare_end_hook = q{ 1;};
# $fmlpgp_prepare_start_hook = q{ 1;};
# $fmlpgp_run_end_hook = q{ 1;};
# $fmlpgp_run_start_hook = q{ 1;};
# $fmlpgp_verify_request_end_hook = q{ 1;};
# $fmlpgp_verify_request_start_hook = q{ 1;};
# $makefml_finish_end_hook = q{ 1;};
# $makefml_finish_start_hook = q{ 1;};
# $makefml_prepare_end_hook = q{ 1;};
# $makefml_prepare_start_hook = q{ 1;};
# $makefml_run_end_hook = q{ 1;};
# $makefml_run_start_hook = q{ 1;};
# $makefml_verify_request_end_hook = q{ 1;};
# $makefml_verify_request_start_hook = q{ 1;};
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե 륿:
إå Υ ¤ ޤ ޤ ޥ
뤽 줾 ¸ ߤ ޤ ɬ ʥե 륿 Τߤ ξ ¤ε
ǽ ڤ ä Ȥ ǽ Ǥ ( Ȥ⡢ ޤ ʾ ǤΤߥե 륿 Ȥ ä Ȥ褦 Ȥ
HOOK ˤ ˤʤ ⤤ ޤ )
; : Mail::Message 饹 ǽ Ϥ ƿ Ĥʤ ¤ κݤˡ
Υ ѤߤʤΤǡ Υե 륿 μ Ǥ :)
# Descriptions: إå ξ Υǥե
# History:
# Value: NUM
# Examples: 102400
default_mail_header_size_limit = 102400
# Descriptions: ʸ ξ Υǥե
# History:
# Value: NUM
# Examples: 10240000
default_mail_body_size_limit = 10240000
# Descriptions: 粿 夹 뤫
# History: $NUM_LOG_MAIL
# Value: NUM
# Examples: 128
incoming_mail_cache_size = 128
# Descriptions: ( ) 粿 夹 뤫
# History: $NUM_LOG_MAIL
# Value: NUM
# Examples: 128
outgoing_mail_cache_size = 128
# Descriptions: ƥ Υݥꥷ
# ͤ ʤ Τ ( ǥե )
# ֤ ˹Ԥʤ Τ
# History: none
# Value: SELECT ( size interval )
# Examples: size
log_rotate_policy = size
# Descriptions: ե
# 礭 ơ ʤ
# History: $LOGFILE_NEWSYSLOG_LIMIT
# Value: NUM
# Examples: 300000 (300K bytes)
log_rotate_size_limit = 300000
# Descriptions: Ƥ 줿 إå ξ
# (MTA fml Ȥ ε إå ξ )
# History:
# Value: NUM
# Examples: 102400
incoming_article_header_size_limit = $default_mail_header_size_limit
# Descriptions: Ƥ 줿 ʸ ξ
# (MTA fml Ȥ ε ʸ ξ )
# History:
# Value: NUM
# Examples: 10240000
incoming_article_body_size_limit = $default_mail_body_size_limit
# Descriptions: Ƥ 줿 ( ) إå ξ
# (fml MTA Ϥ ݤε إå ξ )
# ( ε ǽ ;-)
# History:
# Value: NUM
# Examples: 102400
outgoing_article_header_size_limit = $default_mail_header_size_limit
# Descriptions: Ƥ 줿 ( ) ʸ ξ
# (fml MTA Ϥ ݤε ʸ ξ )
# ( ε ǽ ;-)
# Value: NUM
# Examples: 10240000
outgoing_article_body_size_limit = $default_mail_body_size_limit
# Descriptions:
# History:
# Value: MIX (
# article_size_filter
# article_header_filter
# article_non_mime_filter
# article_mime_component_filter
# article_text_plain_filter
# article_spam_filter
# article_virus_filter
# )
# Examples:
article_filter_functions = article_size_filter
article_header_filter
article_non_mime_filter
article_mime_component_filter
article_text_plain_filter
article_spam_filter
article_virus_filter
# Descriptions: ե 륿 뤫
# History: no
# Value: YES_OR_NO
# Examples:
use_article_size_filter = yes
# Descriptions: ե 륿 Υ롼 롣
# ɤΥ롼 å ʤ ʤ顢 Ƥ
# History:
# Value: MIX ( check_header_size
# check_body_size
# permit
# )
# Examples:
article_size_filter_rules = check_header_size
check_body_size
permit
# Descriptions:
# History:
# Value: MIX ( command_mail_size_filter )
# Examples:
command_mail_filter_functions = command_mail_size_filter
# Descriptions: ե 륿 뤫
# History:
# Value: YES_OR_NO
# Examples:
use_command_mail_size_filter = yes
# Descriptions: ե 륿 Υ롼 롣
# ɤΥ롼 å ʤ ʤ顢 ޥ ǧ
# History:
# Value: MIX (
# check_header_size
# check_body_size
# check_command_limit
# check_line_length_limit
# permit
# )
# Examples:
command_mail_size_filter_rules = check_header_size
check_body_size
check_command_limit
check_line_length_limit
permit
# Descriptions: MTA fml Ȥ Υ ޥ إå ξ
# History:
# Value: NUM
# Examples: 102400
incoming_command_mail_header_size_limit = $default_mail_header_size_limit
# Descriptions: MTA fml Ȥ Υ ޥ ʸ ξ
# History:
# Value: NUM
# Examples: 10240000
incoming_command_mail_body_size_limit = $default_mail_body_size_limit
# Descriptions: fml MTA Ϥ ݤΥ ޥ إå ξ
# ( ε ǽ ;-)
# History:
# Value: NUM
# Examples: 102400
outgoing_command_mail_header_size_limit = $default_mail_header_size_limit
# Descriptions: fml MTA Ϥ ݤΥ ޥ ʸ ξ
# ( ε ǽ ;-)
# History:
# Value: NUM
# Examples: 10240000
outgoing_command_mail_body_size_limit = $default_mail_body_size_limit
# Descriptions:
# mode temporal ʤ
# History: none
# Value: NUM
# Examples:
error_mail_analyzer_cache_size = 14
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե 륿: ޥ
ޥ ְ ޥ 䡢 ޥ ¡ Ȥ ְ Υ ޥ
get Ǥ 100 ĤޤǤȤ Ȥ ä ¤ פ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ե 륿: mime component filter Υ롼 빽 ˡ
fml4 content filter Ȥϰۤʤꡢ fml8 mime component filter Υ롼
text/plain permit
text/html reject
* permit
Τ褦 ʶ ե ޥåȤǽƤ
MIME ʤΤǡ !MIME (MIME ʳ оݤȤ ) Ȥ ̿ Ϥ text/plain
multipart/mixed text/plain 뤿 Τ褦 ʽ
ʬ
----------------------------------------------
text/plain * permit
multipart/mixed text/plain permit
multipart/mixed text/html reject
multipart/mixed image/* cutoff
* * permit
Ϥ Τ⤢ ꤨ 礦 (̤ )
text/plain :uuencoded: cutoff
text/plain :size>500k cutoff
Υ롼 ؤ Ƥ Ĥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
first match vs last match ?
ˤ first match Τ Ȥ Ǥʤ reject ϡ Ƥ
first match Ǥ cutoff first match Ǥ " ʤ " Ȼפ ޤ ơ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
permit ΰ
Ǥϡ permit Ϥɤ Ǥ 礦 ¤ΤȤ ̮ ȹͤ ޤ Τ ۣ Ǥ
Ȥ С multipart Υ Ȥ
text/plain + image/jpeg + text/html
Τ褦 ˣ Ĥΰۤʤ륿 פΥѡ Ȥ 硢 ɤ 롼 ޤ פ ʤ Ǥ 礦
С cutoff reject 륿 פΥ롼 뤷 ޤ ǽ ޤ Ĥޤ
Ρ ϵ ݤ ե 륿 ϡ ޤ ư ޤ 椨 ˥ǥե permit ˤ 뤷
permit ϡظ ̤˵٤Ȥ Ǥ ȡ permit ϡإ ۤȤ Ǥ
ꤨ ޤ Ȥ С
text/plain * permit
* * reject
text/plain ϵ Τ ʤ뷿 ʤ text/plain ʤ
Τ OK Ǥ 礦
permit ϡإ ٤Ȥ Ǥ ⤢ ꤨ ޤ Ȥ text/plain
Υ Ȥ ޤ 礦 ľ ˤϡ Τ褦 ʥ롼 Ȥ ⤤ ޤ
text/plain * permit
* * reject
permit ¨ OK ΰ Ǥʤ Ȥ
* * reject
Ȱ ˤʤäƤ ޤ 櫓 Ǥ permit ֥ OK Ȥ ƥ롼 ξȤ餷
ǽ Ȥ ˲ ʤ Ȥ ޤ ư ޤ ơ Τ褦 ʥ롼
ꤨ ʤ Ȥˤʤ
text/plain * permit
multipart/mixed text/plain permit
multipart/mixed text/html reject
multipart/mixed image/* cutoff
* * permit
ꤨ ʤ Ȥ Τϡ Υ롼 Τ褦 ˽Ƥ
text/plain * permit
multipart/mixed text/html reject
multipart/mixed image/* cutoff
* * permit
Ĥޤ permit ̿ ǽ Ȥ multipart Ф Ƥϻ äƤϤ ʤ Ȥˤʤ
֥ǥե ν text/plain * Τ褦 ʥ롼 ƤΤ permit ̿ ϰ
Ǥ
ʲ first match ˡ ͤ Ƥߤޤ 礦
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ǥե ε
ۤΥǥե 롼 ¾ header text ե 륿 Ȥ ֤Ȥꤢ פǤ
礦
* * permit
content filter ֥롼 ޤ ʤ פȤ ˤ Ƥ
礦
ʤ ǥե ε reject ѹ * * reject ä Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : text/plain ( ) Τߤ
text/plain * permit
* * reject
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : text/plain Ǥ
text/plain Ǥ η ϵ ݤ ʥ롼 뤬 ʤ Ǥ
text/plain * permit
multipart/* text/plain permit
* * reject
Υ롼
text/plain + text/plain + text/plain
Ǥ⡢
text/plain + text/plain + image/jpeg
Ǥ ä OK ˤʤäƤ ޤ ޤ ͡ Ȥ not ڥ졼 (!) ϲ
Ǥ 礦
text/plain * permit
multipart/* !text/plain reject
multipart/* text/plain permit
* * reject
֤ 줬 Ԥ plain/text Τߤ ̤ 롼 Ȼפ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : text/html ( ) text/html multipart
text/html * reject
multipart/* text/html reject
* * permit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ऺ
ɤ Ǥ 礦 ʥ롼 뤬 ʤ Ǥ
text/plain * permit
multipart/* text/plain permit
multipart/* * reject
* * reject
multipart text/plain ߤʤ Ĥޤꡢ
text/plain + text/plain + text/plain
ϵ ޤ ʤ
text/plain + text/plain + image/jpeg
text/plain + image/jpeg + text/html
ܤΥ롼 permit ޤ ޤ ޤ ʤ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : ΥХꥨ reject ǤϤʤ cutoff
reject cutoff ΥХꥨ Ǥ
text/plain * permit
multipart/* image/* cutoff
multipart/* text/plain permit
* * reject
Ĥޤ
text/plain + text/plain + text/plain
OK Ǥ
text/plain + text/plain + image/jpeg
Υ image/jpeg ʬ 3 롼 permit Ȥ⡢
ʤ
text/plain + image/jpeg + text/html
̲ ǽ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : cutoff + permit ˤ
text/plain * permit
multipart/* image/* cutoff
multipart/* image/* permit
multipart/* text/plain permit
* * reject
ʤ顢
text/plain + text/plain + text/plain
text/plain + text/plain + image/jpeg
text/plain + text/plain + text/html
ɤ OK Ǥ 롼 ޥå ꤬ ۤʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: mime component filter ʵ ǽ Ȥϡ
ʲ ϡ fml-help ̤ͣˤ ȤΤޤȤ
ȡ ޤε ǽ Ǥ 褦 ǡ content filter ε Ȥʤä cutoff ε ǽ Ϥ⤦
ߤ Ǥ
ޤ content filter λȤ Ĥ ͤ Ƥߤޤ
(1) text/plain multipart text/plain ̤
ML Ǥ text/plain ʳ Υ Ȥ
(ź ե 륹 ⤷ )
(2) multipart text/plain ʳ ʥ ݤ
(ź ե 륹 ⤷ )
(3) multipart text/html ʬ
html
Ǥ text/plain ᤹( )
(4) multipart image/* ʬ
̤ͣ ʤ褩
(5) text/html Υ spam ˷ äƤ뤫 Ƥ
Ȥη Ȥ ȡ (1) Υ ¿ Ȥ ȤǤ 礦 줬 Τ褦 Ǥ
ȥݥꥷ ( Ӥ Ǥ 뤫 ʤ ) ˤ Ƥϡ (2) ⥢ ꤫ ⤷ Ȥ м ̤
Τ褦 ˥ Ǥ ʤ ̤ͣϡ ⤽ mime component filter on ˤǤ ʤ Ȼפ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 40. 桼 ˤĤ
桼 ɲäȺ ϡ ɤ ѿ ƹԤʤ ٤ Ǥ 礦
桼 ɲäȺ ϡ primary_*_map Ф ƹԤäƤ
Ȥ С ȴ ɲý primary_admin_member_map
primary_admin_recipient_map ˥ 륢 ɥ쥹 ɲä ޤ κݤϡ
primary_admin_member_map primary_admin_recipient_map 饢 ɥ쥹 ޤ
оݤ admin_member_maps admin_recipient_maps ˤ
( ˤ fml4 ʤ ޤ ;-)
äĤޤ (WRITE) оݤϰ ˸ ꤷ ʤ ƤϤ ޤ ơ primary_*_map
Ф ƹԤʤ ٤ Ǥ (READ) ΤǤ ʣ äƤ⤫ ޤ ޤ WRITE оݤ *_maps Ǥ
Ȥˤ Ƥ ޤ ȡ ʣ map Τɤ ۣ ˤʤäƤ ޤ ޤ
դˡ 츫 *_maps оݤ ޤ ¤ ܤǤ ä
ˤʤäƤ ޤ Ȥ 뤫 ʤ ϡ *_maps ˡָ ¤ΰۤʤ map פ ߤ Ƥ
Ȥ С member_maps ϥǥե ǡ ȴ ޤ
member_maps = $primary_member_map
$admin_member_maps
Τ ᡢmember_maps Ф ƺ ߤ ޤäƥ ȴ
ä ۣ 뤿 primary_XXX_map XXX_maps Ȥ ʬΥ ͰƤ 줿 Ȥ
櫓 Ǥ ( 褦 fml4 ʤ ޤ ;-)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 41. ޥ ( ޥ 롢makefml CGI)
Ƽ拾 ޥ ǻȤ ⥸ 塼
fml8 Ǥϡ ޥ 롢 makefml CGI Ȥ ⥸ 塼 ͭ ޤ
θ ¤κ ۤˤ ơ ̥桼 Υ⥸ 塼 Υ⥸ 塼 Ĥ 礭 ʬ ޤ
ʲ Υ⥸ 塼 뷲 ι ˤĤ Ʋ ⤷ ޤ
FML::Command:: 饹 ϰʲ Τ褦 ʹ ˤʤäƤ ޤ
FML::Command FML::Command 饹 ʲ ؤ dispatcher
FML::Command::User 桼 ޥ
FML::Command::Admin ޥ
Ȥ С ( ޥ ) 桼 ޥ ξ FML::Command ͳ
FML::Command::User:: ޥ ⥸ 塼 ƤӽФ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
( ޥ ) ̥桼 ޥ
FML::Process::Command FML::Command FML::Command::User:: ޥ
ӽФ Ƥ ޤ
ǽ Ū FML::Command::Admin:: ޥ ⥸ 塼 Ȥ Ⱥ
μº FML::Command::Admin:: ޥ ˤ 륳 ɤ ԤʤäƤ ޤ ٤ƤΥץ
/ μ 뤿 ξ FML::Command::User::
ޥ פ confirm ʤ wrapper Ȥ դ ˤʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
( ޥ ) ޥ (admin ޥ )
FML::Process::Command FML::Command FML::Command::Admin:: ޥ
ӽФ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
makefml
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│makefml ԤǤ ǡ Ф˥ Ը ¤ ߤʤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
FML::Process::Configure FML::Command FML::Command::Admin:: ޥ
ӽФ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│CGI 桼 ऱ CGI ȴ CGI │
│ │
│ CGI ˤĤ Ƥϡ CGI ԤǤ ǡ (ǧ ڤ Ƥ ) │
│ ¤ ߤʤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
ɥ쥹 Ͽ/ ʤɤΤ 桼 CGI ϡ FML::Process::CGI
FML::Command FML::Command::User:: ޥ ӽФ Ƥ ޤ ޥ
Ʊ confirm Τ wrapper Ȥ դ Ǥ
CGI ϡ FML::Process::CGI FML::Command
FML::Command::Admin:: ޥ ӽФ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ ե
٤ƤΥ ޥ (fml8 ؤ ) ǽ Ū ˡ FML::Command ץ 饹
FML::Command:: ⡼ :: ޥ ץ 饹 ӽФ ޤ GUI CUI ޥ
˻ ʳ ۤʤ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│2004/03/05 ʹߤϡ ե졼 Ȥʤ │
└─────────────────────────────────────────────────────────────────────────────┘
ϡ ޥ Ǥ ʸ ʣ ꡢ 줬ʣ ̿ ޤ
ޤ ̤Dz Ϥ ˰ Υ ޥ Ƥ Ǥ
뤹 ɤδ ʽ 塢 ޥ ( Ԥ ) ߤΥ
Ȥǵ ޥ ǧ ޤ
1) guide subscribe Τ褦 ˥ С ʳ ˤ ޥ Ǥ
ޥ ƤӽФ 롼 ǵ ޥ
anonymous_command_mail_allowed_commands 륳 ޥ Ǥ
2) 餫 줿 桼 ˵ ޥ ξ command_mail_restrictions Υ
롼 ä ξ ǧ ޥ μ¹Ԥ Τߡ ޥ ƤӽФ 롼
Ǽ¹Ԥ ޥ user_command_mail_allowed_commands
륳 ޥ Ǥ
֤ 餫 줿 桼 פˤϡ ̥桼 ȴ ޤޤ 줾
ե ۤʤ
ָƤӽФ 롼 Ǥϡ ( ޥ ˰ ) ( ޥ ˰ )
å å ơ FML::Command 饹 ǥ ޥ ¹Ԥ μ¹Ԥϰ ̥桼
¤Ǽ¹Ԥ
admin ޥ 餫 줿 桼 פǤ admin ޥ μ¹Ԥϡ ǤϹԤʤ
ޤ admin ... ץ ޥ ϡ ޤ ̥桼 ¤ admin ޥ [30] μ¹ԤȤ ƽ
졢 ǽ Ū ˡ FML::Command::User::admin ץ 饹 ƤӽФ Υ 饹
admin_command_mail_restrictions ˤ Ť ơ Υ桼 ϥ ȥ ޥ
Ԥ 븢 ¤ 뤫 θ塢 ⤦ FML::Command ץ 饹 ǡ
¤Ρ FML::Command::Admin:: ޥ ץ 饹 ƤӽФ ( Ĥޤ ݥ ᥫ ˥
)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CUI (makefml/fml) ν
Υץ Ǵ ( ̤ͣΥ Ф˥ Ȥ ꡢ 桼 fml su Ǥ
븢 ) Ǥ ơ ¤Ϥ FML::Command
FML::Command::Admin:: ޥ ץ 饹 ƤӽФ Ƥ ޤ
ʤ Фإ Ȥ 뤿 SSH ǡ RSA 2048 ӥåȰʾ Τߤ ѥ
ڤ Ȥ ä Ǥʱ 롼 ݤ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ γ : ޥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ ֳ ǽ Ĥ ϰϡפ ޤ │
│ │
│ Υۥ Ⱦ ƤΣ̤ͣ Ѳ ʡץ ޥ ꤿ ϡ ⥸ 塼 │
│ │
│/usr/local/lib/fml/site_local/ │
│ │
│ ʲ ֤ Ʋ │
│ │
│ ̤ͣ Ѳ ʵ ǽ Ǥ ƣ̤ͣΥۡ local/lib/ ʲ ˤ │
│ Ʋ │
│ │
│ ̤ͣΥۡ /local/lib/ │
│ │
│ : elena ( ML Υۡ ब /var/spool/ml/elena/ ) │
│/var/spool/ml/elena/local/lib/ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̥桼 ȼ ޥ 롣
桼 Υ ޥ uja ꤿ (1) FML::Command::User ʲ Υ⥸ 塼 뤫
˥ ԡ Ȥ
/usr/local/lib/fml/site_local/FML/Command/User/uja.pm
Ȥ ե Ƥ (2) ˡ ե uja Ĥ Ƥ
٤ƤΣ̤ͣ site_default_config.cf ǡ ֵ 륳 ޥ Υꥹ ȡפ ɲä
Ƥ
user_command_mail_allowed_commands += uja
user_command_mail_allowed_commands ̥桼 ˵ ޥ Υꥹ Ȱ
elena M ̤ elena ̤ͣ config.cf ǡ 륳 ޥ ꥹ Ȥ ɲä
Ƥ
user_command_mail_allowed_commands += uja
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
admin uja ޥ 롣
Υ ޥ (admin ޥ ) uja ꤿ FML::Command::Admin ʲ
˥ ԡ Ȥ
/usr/local/lib/fml/site_local/FML/Command/Admin/uja.pm
Ȥ ե Ĥ äƤ
٤ƤΣ̤ͣǥ ޥ site_default_config.cf ǡ 륳 ޥ ꥹ
Ȥ ɲä Ƥ
admin_command_mail_allowed_commands += uja
admin_command_mail_allowed_commands ˵ ޥ Υꥹ Ȱ
elena ̤ͣ elena ̤ͣ config.cf ǡ 륳 ޥ ꥹ Ȥ ɲä
Ƥ
admin_command_mail_allowed_commands += uja
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ γ : makefml ξ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ Υۥ Ƥ ML 硢 塼 │
│ │
│/usr/local/lib/fml/site_local/ │
│ │
│ ʲ ֤ Ʋ ̤ͣ ĥ ƣ̤ͣΥۡ local/lib│
│/ ʲ ˤ Ʋ │
│ │
│ ̤ͣΥۡ /local/lib/ │
│ │
│ : │
│/var/spool/ml/elena/local/lib/ │
│ │
│ ʲ Ǥϡ ٤ƤΣ̤ͣ ͤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
makefml ǥ ޥ uja ꤿ FML::Command::Admin ʲ ˥ ԡ
Ȥ
/usr/local/lib/fml/site_local/FML/Command/Admin/uja.pm
Ȥ ե Ĥ ʤ
makefml Ǥϡ֥⥸ 塼 ˤʤ ޥ
*_allowed_commands Ϥ ѿ ѹ פǤ
makefml ѤǤ ǡ Σ̥ͣ Ф ø ¤ Ƥ Ǥ 顢
¤ Ƥ ˤ Ǥ 礦 顣
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ γ : CGI ξ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ ʲ ε Ҥǡ Ѳ ʵ ǽ ɲáפ CGI ̤κ ߤ ɬ Ǥ │
│ │
│ Υۥ Ⱦ ٤ƤΣ̤ͣ 硢 塼 │
│ │
│/usr/local/lib/fml/site_local/ │
│ │
│ ʲ ֤ Ʋ │
│ │
│ Σ̤ͣ ĥ ƣ̤ͣΥۡ local/lib/ ʲ ˤ Ʋ │
│ │
│ ̤ͣΥۡ /local/lib/ │
│ │
│ : │
│/var/spool/ml/elena/local/lib/ │
│ │
│ ʲ Ǥϡ ٤ƤΣ̤ͣ ͤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
CGI Ǥγ ϡ ̥桼 Ȥ ȤϾ ʤ Ƥ ϴ Τ ȹͤ ޤ
ơ ʲ ǽ Τߤ ޤ
Υ ޥ uja ꤿ FML::Command ʲ ˥ ԡ Ȥ
/usr/local/lib/fml/site_local/FML/Command/Admin/uja.pm
Ȥ ե Ƥ
٤ƤΣ̤ͣ uja ޥ site_default_config.cf ǡ 륳 ޥ
ꥹ Ȥ ɲä Ƥ
admin_cgi_allowed_commands += uja
admin_cgi_allowed_commands CGI ե ǵ 륳 ޥ ΰ
elena ̤ͣ elena ̤ͣ config.cf ǡ 륳 ޥ ꥹ Ȥ ɲä
Ƥ
admin_cgi_allowed_commands += uja
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: fml4 fml8 Υ ɤν ɤΤ 餤 㤦
ޥ Ǥ ե ֤ ٤ help ޥ Ȥꡢ fml4 fml8 Υ
ɤ ޤ 礦
fml4 Ǥϡ Ŭ ʴؿ Ȥ myProcHelpFileSendBack ꡢ %LocalProcedure ˽Ƥ ޤ
%LocalProcedure = (
'help', 'myProcHelpFileSendBack',
);
myProcHelpFileSendBack ƽ ȡ Τ褦 ʤ Ǥ 礦
sub myProcHelpFileSendBack
{
local($proc, *Fld, *e, *misc) = @_;
my $UJA_FILE = "/some/where/help";
&SendFile($Envelope{'Addr2Reply:'}, "UJA $ML_FN", $UJA_FILE);
}
fml8 help ե ֤ ɤμ Τ FML::Command::User::help ˤ ꡢ
FML::Process::Command 饹 (FML::Command AUTOLOAD ͳ ) ƤӽФ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ ƤΥ ޥ FML::Command::User:: ޥ ⤷ FML::Command::Admin:: │
│ ޥ 饹 Ȥ Ƽ ޤ ʤ makefml ϡ FML::Command::Admin:: ޥ │
│פ ޤ ޥ CGI User Admin ¤˱ Ȥ ʬ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
help ޥ μ Τ FML::Command::User::help process() ؿ
sub process
{
my ($self, $curproc, $optargs) = @_;
my $config = $curproc->config();
my $charset = $config->{ report_mail_charset_ja };
my $help_file = $config->{ help_file };
# template substitution: kanji code, $varname expansion et. al.
my $params = {
src => $help_file,
charset_out => $charset,
};
my $help_template = $curproc->reply_message_prepare_template( $params );
if (-f $help_template) {
$curproc->reply_message( {
type => "text/plain; charset=$charset",
path => $help_template,
filename => "help",
disposition => "help",
});
}
else {
croak("no help file ($help_template)\n");
}
}
$curproc ϥϥå ե ǡ fml4 %Envelope ˤ Ƥ ޤ
̾ ΤȤ ꡢ Unix ͥ ʤ ߤ current process ¤ ؤΥݥ Τ褦 ʤ ǡ ץ
͡ ʥǡ ¤ 䥪 ֥ ȤؤΥ ޤ
fml4 ѿ ٤ƥ Х ѿ fml8 Ǥ $config ֥ Ȥ ̤ ƥ
Ǥ ѿ ֤ ơ Ĥͤ $config ֥ Ȥ ̤ ɤ߽Ƥ
reply_message_prepare_template() åɤϡ ֤ Υƥ 졼 ѿ
Ÿ Ѵ ʤ 줿 ƥ 졼 ȤؤΥե ֤ ޤ ( ƥ 졼 ȥե
$tmp_dir ǥ 쥯 ȥ )
ƥ 졼 ȥե դǤ ʤ顢 $curproc->reply_message() Ȥ ץ
Υ Ԥʤ ȥåץ åɤ ӽФ ޤ
$curproc->reply_message() ϰ ˤ ƿ ۤʤ 衢
å 塼 åɤǤ
ޥ ⥸ 塼 ν 塼 줿 Ȥ ʤ ʲ ϡ ɤ
Ǥ ʤ ̾ ե ΰ
塼 줿 ϡ ץ ν λľ ˼Ԥ Ȥ˥ ޤȤ
졢 ̤Υ Ȥ Ƥʤ 塼 μ ब ե
ߤ Ƥ Ŭ MIME ޥ ѡ ȤΥ
ν ȡ ô åɤ ƤФ Mail::Delivery
饹 ô 塼 줿 ǽ Ū Mail::Delivery
饹 Ϥ ʤ ޤ
ڤ fml4 Notify() Ǥ å ٥ 塼
졢 Ǹ 쵤 ˽ 礭 ۤʤ
ʤ get ޥ ʤɤ 塼 λ Ȥߤ äƤ ޤ Ĥޤ fml4 Notify() ʬ
( ) ǽ ĥ 塼 Τߤޤ ƥ 塼
줿 ϺǸ 쵤 ˽ ޤ ˤ ơ Υ 塼 Υᥫ ˥ ब
fml4 礭 ۤʤäƤ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 42. CGI ץ
å
FML::CGI:: γ ˤ 륯 饹( Ȥ FML::CGI::ML) Ǥϡ ʲ Υ åɷ Ʋ
html_start()
run_cgi_main()
run_cgi_title()
run_cgi_navigator()
run_cgi_menu()
run_cgi_command_help()
run_cgi_options()
html_end()
html_start() ϡ 褦 HTML ʬ Ȥ DOCTYPE BODY
html_end() /BODY /HTML ޥ 뤿 ޤ
run_ ʤ פ HTML BODY åɷ Ǥ
$curproc run() åɤ
html_start()
run_cgi_XXX() (3x3 ơ ֥ ˽ Ϥ ֡ 9 åɤ )
html_end()
˼¹Ԥ Ƥ ޤ Ĥޤ CGI ץ μ¹ԤΥե ( FML::Process::Flow )
new()
prepare()
verify_request()
run()
html_start()
run_cgi_ () (9 åɤ )
html_end()
finish()
Ȥ Ȥˤʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI β ̤κ ȥ å
fml8 CGI ȤǤ Ū ʲ ̤ Τ褦 䤵 ȹͤ Ƥ ޤ
إå
塼
С ᥤ С
塼
եå
ʤ С ȣ navigation ʤɤȸƤФ
إå (HTTP إå ǤϤʤ HTML DOCTYPE BODY ) 䡢 եå
html_start() html_end() HTML ɤ Ƥ ޤ
HTML BODY 3x3 ơ ֥ ǡ run_cgi() Ф åɤ
Ƥ ޤ
(1) run_cgi() ( Ȥ ) (2) ֲ ̾ ɤ Υ åɤ
Ҥ פ Ǥ åɡ ɬ Ǥ 礦 ޤ 碌 BODY
Τ褦 3x3 ޤ
nw north ne
west center east
sw south se
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ߤ CGI β ̤ι ¤
ʲ Τ褦 ʣ x Υơ ֥빽¤ äƤ ꡢ 줾 켡 Υ åɤ ɽ Ƥ ޤ
run_cgi_main
run_cgi_title
run_cgi_navigator run_cgi_menu run_cgi_command_help
run_cgi_options
HTML Υ ϡ TABLE ̿ äƵ ʥʥӥ С äƤ ޤ ơ ϥå
֥ ֤Ǽ¹Ԥ ơ ֥ Ƥ ޤ
run_cgi_main() ϲ 餫 ν ʤ ¤겿 ޤ Ƥ ϡ֤ʤ פ OK ġ
٤Ǥ 顼 뤳 Ȥ⤢ ޤ δؿ ̰ͣ ɤ ǿ ξ
뤿 ̤ ˼¹Ԥ
ʤߤˡ run_cgi_main() ϸġ δؿ ƤӽФ ȥåץ ץ ǡ
FML::CGI::Menu::Admin ޤ ġ Υ ޥ ϡ makefml λ ˡ
δؿ ͳ Ǽ¹Ԥ
ꥹ Ȱ 褦 run_cgi_menu() ̤ Ƥ Τ⤢
ɽ Υ ץ λ 뤿 run_cgi_main() ǤϤʤ run_cgi_menu
() Ƥ ⤤ Ǥ ʤˤ ޥ η Ĺ Τǡ Τ褦
menu() Τۤ 褤 Ȼפ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̤ȥȥ ݥ
CGI ʬ FML::Command:: ʲ Υ 饹 ˰ ޤ ʤ 顢
FML::Command:: Τ ϸ¤餺 object composition η FML::CGI::
饹 ˥塼 饹 ȤˤʤäƤ ޤ Ȥ subscribe ξ
FML::CGI::Admin::Main
FML::Command::Admin::subscribe
FML::CGI::Admin::User
塼
ʤɤȤʤäƤ ơ Mach Υȥ ݥ Τ褦 ˡ ä ꤭ ꤷ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: FML::CGI::Admin:: Ǥϥϡ ɥ ǥ 뤷 ʤ Τ
Ȥ FML::CGI::Admin::User Ǥ $comname maps δط ϡ ɥ ǥ ޤ
ե ѿ ˤʤꤽ ʤΤǡ ٤Υϡ ɥ
ǥ ϻ Ǥ 礦 Ǥ config.cf ѹ Ǥ ˿ Ȥϻפ
ΤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI μ : CGI 饹 ηѾ ط
config.cgi Ǥϡ @ISA ( Ѿ ط ) Τ褦 ˤʤäƤ ޤ
FML::CGI::Menu FML::Process::CGI::Kernel FML::Process::CGI::Param
thread.cgi ηѾ ǡ Τ褦 ˤʤäƤ ޤ
FML::CGI::Thread FML::Process::CGI::Kernel FML::Process::CGI::Param
.cgi Υ ɤ FML::CGI:: γ ֤ 褦 ˤ Ƥ ޤ
Ǥʤ (.cgi Ƕ ͭ 륳 ) FML::Process::CGI::Kernel
ޤ ˤϡ ץ ȡ ǥե CGI ؿ run_cgi_ ʤ
() פ ޤ
ɬ ˱ FML::CGI:: γ ǡ Υ åɤ С ɤ Ƥ
ʤ FML::Process::CGI::Kernel ΰʲ Υ åɤ ǡ ºݤˤϻȤ Ƥ ޤ
run_cgi_log
run_cgi_dummy
run_cgi_date
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI μ : config.cgi μ
ҤΤ褦 config.cgi ξ Ѿ ط ϼ Τ褦 ˤʤäƤ ޤ
FML::CGI::Menu FML::Process::CGI::Kernel FML::Process::CGI::Param
ʲ Ǥϡ config.cgi ν ߤƤߤޤ 礦
config.cgi Υץ ֥ $curproc FML::Process::CGI::Kernel 饹 Ǥ
FML::Process::CGI::Kernel Ǥ
new()
prepare()
verify_request()
run()
finish()
ƤФ
פʤΤ run() Ǥ run()
$curproc->html_start(); (FML::CGI::Menu)
$curproc->_drive_cgi_by_table(); (FML::Process::CGI::Kernel)
$curproc->html_end(); (FML::CGI::Menu)
Ԥ ޤ CGI β ̤ _drive_cgi_by_table() åɤǤ Υ å ⤫
Ф ؿ CGI Υᥤ Ǥ
$curproc->_drive_cgi_by_table() åɤϡ ʲ γơ run_ () ץ åɷ ӽФ ޤ
Ȥ С ޥ Ԥ run_cgi_main Ǥ
cgi_execute_command (FML::Process::CGI::Kernel) ӽФ FML::Command ǡ
FML::Command::Admin:: ޥ ץ 饹 Ԥ ޤ 줬 GUI 饳 ޥ Ԥ 륳
ɤ ΤǤ
̤ ˤϡ Υ åɷ ƤФ ޤ
Ȥ GUI 桼 Υ 륢 ɥ쥹 run_cgi_menu() ̤
ʤ ޤ run_cgi_menu() cgi_execute_cgi_menu() ǡ ƥ ޥ 饹
FML::Command::Admin:: ޥ ::cgi_menu() פ Ԥ Ƥ ޤ ξ
FML::Command::Admin::subscribe::cgi_menu() åɤ ӽФ Ƥ ޤ
ʤߤˡ ºݤ run_cgi_main() ϡ
FML::Command::Admin::subscribe::process() åɤ ӽФ Ƥ ޤ
¾ ˤ run_cgi_* ؿ ϲ ̤κ ˴ط Ū ʴؿ äƤ褤 Ǥ 礦
Σ ĤΥ åɤϡ Ƥ ǥե δؿ ƤӽФ Ƥ ޤ
run_cgi_title FML::Process::CGI::Kernel 饹 ( ȥ )
run_cgi_options FML::Process::CGI::Kernel 饹 ( )
ޤ .cgi β ̺ åɷ Ȥ Ƽ Τ
run_cgi_navigator FML::CGI::Menu 饹
run_cgi_help FML::CGI::Menu 饹
run_cgi_command_help FML::CGI::Menu 饹
run_cgi_menu FML::CGI::Menu 饹
إ ʤɤϥ ޥ Ȥ˰㤦 櫓 Ǥ 顢 Ǥ ͡ Ȥ⡢ ϡ ʤɤ
ۤʤ ǡ ⥸ 塼 뤬 Ƥ⡢ ܻۤ褦 ʤĤ ʤäƤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 43. ǥ 쥯 ȥ
Q: ֥ǥ 쥯 ȥ깽¤ ϲ ޤ
ǥե ϰ ʳ ˤ Ƥ ޤ Ȥ С HTML 줿 Τ褦 ʰ ʳ γ
¤ ˤʤäƤ ޤ
200201/msg .html
PC ǽ ʤ顢 ǥ 쥯 ȥ 1000 ĥե 뤬 äƤ ۤȤ ֻ ls ֤äƤ ޤ
10000 Ȥ ͤ ޤ
HTML 줿 ե ֥ǥ 쥯 ȥ 1000 Ȥ Ѱդ Ȥ spool/sub/
file ߤ ˤ spool/ ʲ ε 10^6 ( million ) 餤 ޤǤϡ
® ݤ Ĥij Ǥ Ǥ
Σ̤ͣ 100 ϡ ʤ ʤ ޤ ϡ Ϥʤ Ǥ 礦 ⤦ ʳ
10^9 餤 ޤ ޤ ̤ͣ ³ ȤϾ ʤ ȹͤ ޤ
ʤ ľ ˤϴط ʤ Ǥ Maildir/ Ǥ 100 餤 Ǿ Ĥ餤 褦 Ǥ
10,000 ͤ 100 ͤ Ǥ⤦ Ȥ Ȥˤʤ 100 Υ ˤʤ
餤 ˤϤ ʤ Ȥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 's
1. ǥ 쥯 ȥ ϡ ɤ ޤ
1. ǥ 쥯 ȥ ϡ ɤ ޤ
/usr/local/etc/fml/defaults/$VERSION/default_config.cf ˥ǥե
ޤ ƣ̤ͣ config.cf Ǿ ޤ ư ˻ȤäƤ ͤ fmlconf Ƴ
Ƥ
% fmlconf ͣ | grep _dir
ͤ HOOK ǻȤ ݤˤ config ֥ Ȥ Ʋ
$_xxx_hook = q{
my $config = $curproc->config();
my $xxxdir = $config->get('some_where_dir');
... ά ...
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 44. ǡ θ
ǡ ( ˥ ޥ ʤ ) Ф θ ( input validation ) Ԥʤ
Ƥ ޤ
ץ 줿 ʤ ᡢ FML::Restriction 饹 ˴ Ƹ Ԥʤ
ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǡ ˤĤ Ƥγ
ƥ
⤽ ⡢ ( ǡ Ϥ ) Ϲͤ ˤ ǰ Ǥ º
FML::Restriction 饹 ˤ ǡ å ϹԤʤ Ƥ ޤ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│(SPAM Ǥ Ȼפ ) ɤ FML::Filter 饹 ˤ ե 륿 │
│ å Ԥʤ ޤ │
│ │
│ Ф å ǤϤʤ Τǡ FML::Restriction оݤȤ Ƥ │
│ Ȥϰ 礤 ۤʤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ޥ
ޥ FML::Process::Command FML::Restriction::Command
ɽ ˤ ä 줿 ޥ ˹
FML::Command::{User,Admin}:: ޥ μ¹Ԥ˿ʤळ Ȥ Ǥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI Ф
CGI γƥץ Ǥϡ safe_param_XXX() Ȥ ؿ ͳ ǤΤ HTTP å ǡ
Ȥ뤳 Ȥ Ǥ ޤ
safe_param_*() try_cgi_*() ϰ ͤ ֤ ȤˤʤäƤ ޤ
safe_param_XXX() FML::Restriction::CGI (FML::Restriction::Base
Ƥ ) ǥѥ ˹ ˤΤ ͤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
makefml fml
ޥ 饤 ¹Ԥ ( Ǥ ) Τ å ʤ Τ
ǥե Ǥ ФΥ 뤬 ǡ Υ桼 Ǥ ǧ ڤ Ǥ
桼 / Υ桼 Τ 뤳 ȤϤ ٤ פȿ Ƥ ޤ
ƥ⥸ 塼 뤴 Ȥ ¤ϼޤ Ȥ С adduser ǥ ɥ쥹 ɲä 褦 Ȥ Ƥ⡢
ɥ쥹 ˸ ʤ 褦 е ݤ Τ ¤ϳƥ⥸ 塼 ¸ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FML::Restriction 饹
ǡ 䡢 ޥ ACL FML::Restriction 饹 ʲ ˥⥸ 塼 뤳 Ȥˤ
Ƥ ޤ
Ȥ С CGI Ǥ FML::Restriction::CGI 饹 Υ⥸ 塼 ǡ
ɽ 뤫 ɤ θ Ƥ ޤ
FML::Restriction ʲ Ǥ Base Ƥ ޤ ¾ Υ⥸ 塼 ϡ FML::Restriction
饹 object composition ƻȤäƲ Ȥ С
use FML::Restriction::CGI;
$safe = new FML::Restriction::CGI;
my $allowed_regexp = $safe->param_regexp();
if ($value =~ /^$allowed_regexp{$key}$) { ... ok, do something ... ;}
Τ褦 ˻Ȥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CGI ˤ ǡ
CGI Ǥ FML::Restriction::CGI 饹 Υ⥸ 塼 ơ ǡ ɽ
뤫 ɤ θ ޤ
ϡ ҤΥ 饹 ¤ Ǥ Τ ᡢľ param() äƤϤ ޤ
ɬ safe_param_xxx() åɤ ̤ ơ param() ( CGI ⥸ 塼 ) ǡ Ʋ
ʤ 줿 ɰ Ĵ ٤뤿
for my $dirty_buf (param()) {
... check ...
}
Τ褦 ʹ ʸ ɬ 礦
param($dirtty_buf)
ʤɤȤϤ ƤϤ ޤ
for my $key (param()) {
... check ...
if (key eq $key) {
value = safe_param_key()
}
}
Τ褦 ˽Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: FML::Restriction ¤Ϥ Ӥ 뤫
FML::Restriction Υ 饹 Ǥ RFC ʤɤǵ Τ Ƥ ޤ
⤽ RFC ǡ Ȥ м ˤʤ ɤϰ ¦ ˤ
Ƥ ޤ
FML::Restriction::Command ˤ ޥ Υ å å ϡ ⤦ γ
ʤΤ ⤷ ( )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 45. 桼 ǧ
桼 ǧ ڤ FML::Credential 饹 åɤ äƹԤʤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: FML::Credential μ
ѿ դ ޤ
use_address_compare_function = yes
address_compare_function_domain_matching_level = 3
address_compare_function_type = user_part_case_insensitive
$address_compare_function_type ϡ 桼 ѡ (@ κ ¦) κݤˡ ʸ
̤뤫 ʤ ޤ ǥե Ǥ϶ ̤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 46. HOOK( եå )
HOOK Ȥϡ fml8 餫 Ѱդ ־ perl Υץ Ԥ
ǽ Ǥ ( HOOK eval() ȤǤ )
HOOK դ ޤ
HOOK ϡ Υ Ȥ ¹Ԥ ΰ ܼ ˴ ʵ ǽ Ǥ
ޤ fml8 ˤĤ Ƥ ʤ HOOK ȤϤǤ ޤ
ΰ HOOK ޤ Ȥ Ȥǡ μ ¸ 뤳 Ȥ ˤʤ
ϻȤ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⤷ HOOK ˤ
HOOK ʽ ⤷ ʥ ޥ Τ ɬ ʵ ǽ Ǥ
Ƥϡ Ĥ ꤬
ޤ fml4 $START_HOOK Τ褦 ΤǤϡ ץ Ȥ˰ۤʤ 뤳 Ȥ
Ǥ Ȥ $START_HOOK ꤹ ƥ ޥ 륷 ƥ Ʊ
$START_HOOK Ԥ ޤ 줬 ʾ ⤢ Ǥ ץ Ȥ˰ۤʤ
褦 Ȥ ˤʤ (HOOK if else ... ɬ
ˤʤ )
Τ HOOK ˰ ɬ Ǥ 礦 fml8 Ǥϡ ǽ Ǹ HOOK
Ѱդ 硢 Τ褦 ʥ HOOK ̾ ΤȤ Ƥ ޤ
$ _ ؿ _start_hook
$ _ ؿ _end_hook
ƥ ޥ 륷 ƥ HOOK ʤɤȤ Ϥʤ ʤꡢ
HOOK 뤳 Ȥ Ǥ ˤʤ դˡ Τ 褦 Ȥ 顢 սƲ
;) Ȥ ȤǤ ޤ ԡ ʤΤ ʤ Ǥ ( Ȼפ )
$distribute_XXX_start_hook = q{ ... };
$YYY_XXX_start_hook = $distribute_XXX_start_hook;
ޤ HOOK ν 褯 ʤ Ƥ ʤ Ⱥ 礦 Ȥ Τϡ־ Ȥ
Ǥϡ Perl ǿͤ Ԥʤ Ȥ
ϡ ǽ ɤ Ȥ ⡢ Ǥ ¸
뤳 Ȥ ޤ ϡ פˤ ٤ ǤϤʤ ȹͤ ޤ
Ȥ 櫓 ǡ ƥ⥸ 塼
use strict;
ˤʤäƤ ޤ HOOK lexical scope Ǥ 뤹 ˤ Ƥ ºݤˤϡ
HOOK ˡ Ĥͤ
no strict;
HOOK
Ȥ ʸ Ѵ eval() Ƥ ޤ
fml4 fml8 礭 ʰ㤤 ΰ ѿؿ פǤ դ Ʋ fml4 δؿ ƥ
Х Τǡ ɤ ؿ ޤ fml8 Ǥϡ Ϥ ޤ ȤϤ ޤä
꤬ ꤬ ʤ Τ⺤ ǡ HOOK Ǥ Ǥ $curproc ֥ Ȥ Ͼ
Ǥ 뤳 Ȥ ݾڤ Ƥ ޤ
Ĥޤ HOOK ݤˤϡ $curproc ֥ ȤΥ åɤ äƽ褦 ˤ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOOK ̾ §
HOOK
_ å _start_hook
_ å _end_hook
Ǥ ̾ use_XXX_function ( : use_article_post_function) XXX
ʬ Ǥ κ٤ HOOK ˤĤ Ƥϡ η Ǥʤ ⤢
Ȥ С fmlconf ޥ Υᥤ å run() HOOK
fmlconf_run_start_hook
fmlconf_run_end_hook
Ȥʤꡢrun() hook ƤӽФ ϼ Τ褦 ʥ ɤˤʤäƤ ޤ
sub run
{
my ($curproc, $args) = @_;
my $config = $curproc->{ config };
my $eval = $config->get_hook( 'fmlconf_run_start_hook' );
if ($eval) {
eval qq{ $eval; };
print STDERR $@ if $@;
}
$curproc->_fmlconf($args);
$eval = $config->get_hook( 'fmlconf_run_end_hook' );
if ($eval) {
eval qq{ $eval; };
print STDERR $@ if $@;
}
}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
쥷 ԡ s
1. HOOK ǿ侩 ϡ
2. HOOK ѹ Ƥ褤 ʤ
1. HOOK ǿ侩 ϡ
HOOK ǻȤ my() ¤ Ƥ ¤ϡ
$hook = q{
my $x = $config->{ xxx };
my $y = $config->{ yyy };
if ($x eq $y) {
SOME ACTION
}
};
2. HOOK ѹ Ƥ褤 ʤ
$config ֥ Ȥؤ ޤ $curproc Υ åɤ ѹ
Ǥ ѿ Ƥ⡢ åɤ äƼ ͳ Ƥ
HOOK Ǥϡ $curproc Υ åɤǥ Ƥ ѹ 뤳 Ȥǡ fml8 ʤ褦
뤳 Ȥ Τ Ȥ åץ 졼 ɤ Ƥ ݾڤ åץ
졼 ɤ Ƥ ʤ HOOK ⡢ $curproc Υ åɤ äƽ褦 ˤ
Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 47. С ɥᥤ ˤĤ
; : ߤ fml.org з Σ̤ͣϡ ٤ƥС ɥᥤ Ʊ Ƥ ޤ
Ƥ Ǥ Ϥ Ǥ⡢ ᥤ ΤϤ
褯 뤳 Ȥǡ ͤ Ϥ ᤫ ɥᥤ 줷 Ƥ ۤ Ĥ 䤹
Ȼפ ޤ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│2003/11: С ɥᥤ ĥ ޤ │
│ │
│/usr/local/fml/etc/main.cf ˤ virtual_maps obsolete Ȥ ޤ │
│virtual_maps ml_home_prefix_maps Ȥˤʤ ʤ 顢 │
│ߴ Τ virtual_maps ³ ͭ ( ʤ ȤϤʤ ߴ Τ ᡢ │
│ml_home_prefix_maps virtual_maps Τ ȤǤ │
│Postfix virtual_maps virtual_alias_maps δط ߤ ʴ Ǥ ) │
│ │
│ ޤ makefml fml ޥ ˤ ml_home_prefix_maps newdomain │
│ rmdomain ޥ ä │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
С ɥᥤ ǥ ƥ
fml8 ǥɥᥤ ˤ Ĥ ˤ ޤ Ǥ fml4 ʳ
Ǥ äƤۤ ʤɤ ڤǤ 줷 줬 С
ɥᥤ פ Ǥμ פʾ Ǥ
ޤ ͣ ˤϡ֥桼 ᥤ [31] Ȥˤ ޤ ǥե Υɥᥤ
С ɥᥤ fml8 뤳 Ȥ ˤʤ
ͣ ʳ Ͻ Υ ޥ Ϥ ΤޤޤǤ
ɥᥤ ̤ͣ κǽ ֥ɥᥤ ѥ פΤ (e.g.
home.example.org /var/spool/example.org ʲ ˺ ) ޤʤ Ȥ ʤ Τǡ MTA
ؤ ɲ ꤬ɬ ˤʤ ϥǥե ɥᥤ Ǥ
ľ ʳ ˤʤäƤ פ ΤǤ ɤ Ǥ 礦
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: fml8 ˤ ɥᥤ
ˡ ᥤ Ȥ Ϥ ǽ newdomain ޥ Ԥ Ƥ
Υ ޥ ml_home_prefix_maps ( Τˤ primary_ml_home_prefix_map) ͤ Խ ޤ
θ fml4 makefml (or fml) ޥ äƤ makefml
(or fml) ޥ ݤˤϡ ͣ 桼 ᥤ ǻ ꤹ ۤʤ
դ Ʋ
ʤ ǥե Υɥᥤ ˤϡ ᥤ Ǥ Ĥޤꡢ ξ ˸¤ fml4
Ȥ 櫓 Ǥ
Ȥ С ޥ ϣ̤ͣǤϤʤ ̡ͣ ᥤ Ȥˤʤ Ĥޤꥳ ޥ λȤ
makefml newml ML@virtualdomain
makefml add ML@virtualdomain address
makefml bye ML@virtualdomain address
ʤɤȤ ä ˤʤ
ʤ CGI Ǥ Ǥϥɥᥤ λ ꤬ Ǥ config.cgi ˥ɥᥤ
뤿 ̤ˤ ᥤ ФƤ Ǥ ⤽ URL ˥ɥᥤ
äƤ
:
http://lists/~fml/cgi-bin/fml/$domain/admin/config.cgi
Τǡ ɤΥɥᥤ Ƥ Ϥ狼 äƤ Ǥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ ʤ CGI URL ˥ɥᥤ äƤ ϡ ˤȤä 褦 ˤȤ θ│
│ Ǥ äơ CGI URL ˼ ʬ ݥɥᥤ ǤϤ ( │
│ Ǥ ) │
│ │
│ ͣ ᥤ newml ˺ .cgi Ȥ˥ϡ ɥ ǥ ޤ │
│ CGI Ȥϥϡ ɥ ǥ 줿 ޤ URL Υɥᥤ Ķ ̵ 뤷 Ƥ ޤ│
│ CGI ¹Ի ˡ 桼 HTTP ݤ ѹ 뤳 ȤϽ ( │
│ޤ ) │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : FML.ORG д֤Ǥΰ
FML.ORG Фذ ε Ͽ Ǥ ʲ ˻ ͻ Ȥ ƤޤȤ
ޤ
С fml4 fml8 ϻȤ ޤ ٤Ƥԡ MTA
ޤ (include Τ ϶ ޤ )
(1) Ф Ѱդ ޤ ۥ Ϻ ޤǻȤä ȤΤʤ ޤ ʳ
Ǥϡ " Фǥ ͥåȤ դ ʤ " 褦 ˤ Ƥ
(2) ФǤ Postifx Ƥ Postfix localhost ȿ ۥ
mydestination Ȥ ƼȤ ꤷ ޤ Ȥä ȤΤ ᥤ ٤Ƥ ɥᥤ
ƽ ( Ȥ fml8 virtual_maps Postfix С
ɥᥤ ƥ ˤʤ )
(3) 쥵 ФǤ fml8 ƥ ٤ƽ 쥵 Ф Postfix ǥ ˼ ʤ
褦 ˤ ˥ դ ʤ 褦 ꤷ Ƥ Ƥ ( : smtpd ץ
Postfix inet_interfaces = localhost ꤹ ɡ smtpd ץ
ۤ 褤 Ǥ )
Postfix Υ 塼 Ƥ (flush Ĥ Ƥ ) ĤäƤ 륭 塼
٣̰ͣ Τ ʤ Ȥ ǧ ޤ (mailq postcat postsuper äƤ
) ps Ƥ ʤ ǧ Ƥ
쥵 Фǽ (fml Υ ) ٤Ƥʤ ʤä Ĥޤꡢ
̤ͣι ʤ ʤä Ȥ˼ Ǥ 顢 Υ ƥåפؿʤ
(4) 쥵 Ф 鿷 Фأ̤ͣΥǡ ٤Ƥԡ ޤ ( Ĥޤ /var/spool/ml ʲ ٤ƤΥǡ ԡ
Ȥ ä ȤǤ ) ֤ ʤ ˥ ԡ Ƥ ꡢ Ǹ ʬ ԡ
Ǥ ( Ȥ rsync äƹԤʤäƤ )
(5) ̤ͣΥѥ ޤ
١ ǥ 쥯 ȥ / ɥᥤ / ͣ
:
/pub/ml/labs.example.org/
/pub/ml/test.example.org/info
/pub/ml/test.example.org/test
...
Ȥ ơ ɥᥤ Ϥä ˤ ޤ
(6) ɥᥤ Ȥˣ̤ͣ ޤ
% su root
# makefml newdomain ɥᥤ ١ ǥ 쥯 ȥ / ɥᥤ
# suspend
% makefml --force newml ͣ
% makefml --force newml ͣ
... ɬ ʤ ...
config.cf include ե 뷲 ͣԣ Ѥ 뤬 ǥե Ȱۤʤ
̤ͣ config.cf Խ Ƥ
(7) fml8 Postfix ѥ Postfix Ǥ ޤ fml8
ɥᥤ Ȥ ե Postfix alias_maps virtual_maps ä
ư ǧ Ƥ
(8) ɥᥤ (6)(7) ֤ Ƥ
: ̤ͣ Ѥ ᥤ /vol/ml/ ɥᥤ / Ȥ ޤ β ˳ƥɥᥤ ̷ͣ
ʲ bsg.example.org ffs.example.org nsrg.example.org Σ ɥᥤ
[/usr/pkg/etc/postfix/main.cf ]
alias_maps = hash:/etc/mail/aliases
hash:/vol/ml/bsg.example.org/etc/mail/aliases
hash:/vol/ml/ffs.example.org/etc/mail/aliases
hash:/vol/ml/nsrg.example.org/etc/mail/aliases
virtual_maps = hash:/usr/pkg/etc/postfix/virtual
hash:/vol/ml/bsg.example.org/etc/postfix/virtual
hash:/vol/ml/ffs.example.org/etc/postfix/virtual
hash:/vol/ml/nsrg.example.org/etc/postfix/virtual
(9) ƥ Ȥ ꤬ ʤ 褦 ʤ顢 Фǥ ͥåȤ դ ˤ
ޤ (/etc/postfix/main.cf inet_interfaces /etc/postfix/master.cf Խ
ǰ Τ postfix reload ǤϤʤ postfix stop postfix start)
줤 ˤʤ ͡
ʤ WWW ֤κ ʤ ʤ ʤ顢 ³ ޤ ɥ γ
뵭 ҤȤ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 48. 顼 ץ (libexec/error)
/usr/local/libexec/fml/error fml4 mead (libexec/mead) 륨 顼 ϥץ
Ǥ
$use_error_mail_analyzer_function yes ˤ 顼 ϵ ǽ ͭ ʤ
ʤߤˡ ǥե $use_error_mail_analyzer_function yes Ǥ Ĥޤꥨ 顼 ϵ ǽ
ʤäƤ ޤ Τ fml4 Ȱۤʤ
Ĥޤ fml8 Ǥ fml4 Ǥ褯 Ȥ ǽ Ͻ ʤäƤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
̺ͣ $ml-admin ɥ쥹 Υ /usr/local/libexec/fml/error ӽФ 褦
ꤵ
/usr/local/libexec/fml/distribute ʤɤ /usr/local/libexec/fml/error
ߤ ߡ Ϥ Mail::Message ֥ Ȥκ
Mail::Bounce 饹 顼 β Ϥޤ
Mail::Bounce ϡ 顼 Ĥ ֤ɤ MTA ֥ 顼
륢 ɥ쥹 ֥ 顼 ޤ
Ϸ $error_mail_analyzer_cache_dir ǥ 쥯 ȥ
ְʾ ᤹ $error_mail_analyzer_function ǡ
륢 ɥ쥹 ¸ ߤ ʤ 褦 ˻פ 뤫 ޤ η ä ٤
ȡ
ְ ֡ ־ä ٤ Ȥ Ƚ 塼 ˥ѥ ˤʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
顼Ƚ Υ 르 ꥺ
$error_mail_analyzer_function_select_list ˤ 륢 르 ꥺ
ǥե Ǥ simple_count histgram Ȥ ĤΥ 르 ꥺ ब դ ꡢ histgram
ǥե Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
르 ꥺ : simple_count
ñ 顼 äƤ ֺ 뤫 פη Ǥ ޤ
ñ 顼 Τǡ ɤ ޤ ޡɼԤ δ֤ ְ㤨 Ƥ ơ ɤ ޤ ޡɤ ή ¿
μԤ ֺ ݡ Ȥߤʤ Ȥˤʤ
ä ˤ⡢ 褦 Ƥ ޤ Τ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
르 ꥺ : histgram
顼 Ϣ³ ƣ ˤ Ԥʤ ޤ ǥե Ǥ 14 ( Ĥޤ ) Τ
³ ƥ 顼 ξ ˡ Ϥ ɥ쥹 κ Ԥʤ ޤ
ǥ å : ʤ Ȥ ̤ ʤ ȡ Υ 르 ꥺ ư ޤ
å : ȴְ㤨 μԤ ȤϤ
ߤΥǥե ϡ Υ 르 ꥺ
: Τ Ȥʤ 顢ή ʤ 褦 ʡ ޤä ̤ͣǤϡ Υ 르 ꥺ
ư ޤ :-)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǡ Υ
ƥ 顼 ( 餷 ) β Ϸ $error_mail_analyzer_cache_dir ǥ 쥯 ȥ
ߡ Ϥˤ Tie::JournaledDir 饹 äƤ ޤ Τˤ
FML::Error::Cache Ȥ ץ Tie::JournaledDir ˰ ֤
FML::Error::Cache Tie::JournaledDir ؤ IO ʤ ޤ ٤Ƥ IO ϡ
FML::Error::Cache primitive ʥ åɤ ̤ ƤΤ߹Ԥʤ ʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
顼 ɤ
$maintainer_recipient_maps
ȡ 顼 뤳 Ȥ Ǥ ޤ ǥե ϡ פǡ ž
ϹԤʤ ޤ Ĥޤ fml8 顼 Ǥ ( Ǥ Τǿ侩)
ե ɤ ϡ Ȥ ȡ ñ ˥ 顼 ե ǥ Ԥʤ Ǥ
顼 ( message/rfc822 ) ޤ ̣ mime/multipart ̤ͣδ
Τ ֥إå + Υ 顼 ɥ쥹 ȡ ʤɡ ⤦ ʾ
Ĥ Ǥ 礦 ( ȹͤ Ĥġ ̤ ޤޤǤ )
: fml-devel ML 451 ȡ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 49. IO ե
ΰܿ / 顢 ̥ͣ Ф ߷פˤ Ƥ Unix ˤ Vnode/VFS
interface (vnode(9) ) Τ褦 ʹ ¤ 餫 Ƥ ٤ Ǥ 礦
: NetBSD vnode ¤
struct vnode {
...
voff_t v_size; /* size of file */
int v_numoutput; /* num pending writes */
long v_writecount; /* ref count of writers */
...
int (**v_op)(void *); /* vnode ops vector */
...
void *v_data; /* private data for fs */
};
v_op vop_open() vop_read() vop_getattr() ʤɤ
Ĥޤ struct vnode **v_op (vnode operation vector) ˤ Τ IO ˻Ȥ
륯 饹 γƥ åɤǤ
fml8 Ǥ IO::Adapter 饹 Ȥ ݲ 줿 ե ޤ Υ 饹 ϡ
Ƥ ϥ 륢 ɥ쥹 ΰ Իظ Υꥹ ȷ ǡ Ф IO Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IO::Adapter δ ܷ
fml8 ߷ ܤȤʤ륯 饹 IO::Adapter Ȥ 礦 Ǥ˴ Ǥ ꡢ
primitive ʥ åɤϲ ʤɤˤĤ Ƥ⽽ʬ ͤ ̤ ޤ
IO::Adapter 饹
KEY => VALUE
⤷
KEY => [ VALUE, VALUE2, VALUE3 ]
Τ Ť줫 η Υǡ ¤ Ƥ ͤ ޤ Ĥޤꡢ RDBMS δ
ǡ ¤ Ǥ
KEY1 VALUE1-1 "" ""
KEY2 VALUE2-1 VALUE2-2 VALUE2-3
KEY3 VALUE3-1 VALUE3-2 VALUE3-3
KEY4 VALUE4-1 VALUE4-2 VALUE4-3
桼 ꥹ Ȥ δ ܥ åɷ ϡ IO::Adapter
open()
close()
Υ ֥ Ȥؤ IO Ǥ
add(KEY, ARGV) (ARGV ϥ 饹 Υǡ Τ )
delete(KEY)
find(KEY or REGEXP)
get_next_key()
ʬ Τ褦 Ǥ ʤ Ȥ⡢ 桼 Υ åɤ ǽ ʬ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
å
ҤΤ褦 IO::Adapter δ ܥ åɤϼ ̤
open()
close()
add(KEY, ARGV) (ARGV ϥ 饹 Υǡ Τ )
delete(KEY)
find(KEY or REGEXP)
get_next_key()
֥ Ȥ new() Ǥ Τǡ ʳ new() Ǥ
:) ɬ ʤ ǥ ȥ饯 Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
new()
֥ Ȥ new() Ǥ Ȥ IO::Adapter Ǥ
$obj = new IO::Adapter ޥå ;
⤷
$obj = new IO::Adapter ޥå , ѥ ( ϥå ե );
ʤɤȥ ֥ ȥ פ ( ޥå ) ǻ ꤹ 뤿 ᡢ ޥåפ˱ ʤ ޤ
ƤӽФ δ ܷ ϰ ˹ ǡ Τ褦 ˤʤ
my $config = $curproc->config();
my $obj = new IO::Adapter $map, $config;
HOOK Ѥ ˤ⡢ Ĥͤˡ η ǽƤ ٤ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
open()
ե open(2) RDBMS Ǥ SQL Фؤ Ω 롢 Ȥ ä Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
close()
ʤ open() εդ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
add(KEY, ARGV)
KEY ( ץ饤 ޥꥭ ) ⤷ KEY KEY տ魯 ֥ Ȥ˽ ߤޤ ʤ ARGV
ϥ 饹 Υǡ Τ ΰ Ȥ ʤ Ȥ⤢
Unix Ȥϰۤʤꡢ ֥ Ȥι ¤ ˰ Ȥ RDBMS Τ褦 ʥơ ֥ Ǥ
ޤ ץ饤 ޥꥭ Ȥʤ ̾ 륢 ɥ쥹 Ǥ ¿ ξ ̤ ᡢ 륢 ɥ쥹
饤 ޥꥭ ˤ ơ ֥뷿 ʥǡ ¤ Ȥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
delete(KEY)
KEY KEY տ魯 ¤
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
find(KEY) / find(REGEXP)
֥ ⤫ 饤 ޥꥭ ˳ ޤ
õ ݤ ɽ ǻ ˺ Ǥ ɽ Ȥ 桼
ɤǽ ޤ
ͤ STR ARRAY_REF (KEY Ф [ VALUE, VALUE2, VALUE3 ]) Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
get_next_key()
ץ饤 ޥꥭ ΰ Ф ¿
while ($obj->get_next_key()) { ... }
Τ褦 ǽ Ȥ 뤿 Υ åɤ ޤ
ϥå FIRST_KEY() NEXT_KEY() ˤ ޤ ʤ 顢 桹 ξ
open() ʤɤΥ åɤ դ 뤿 ᡢ FIRST_KEY() NEXT_KEY() Τ褦 ˣ Ĥ
Ϥ
XXX ʤ ˡ key() ⤷ get_key() Ǥ ɤ 롩
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ͤ ARRAY_REF ߤ
ɤ ǡ ¤ ΤǤ 礦 PRIMARY KEY ΰ 礦
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ץ饤 ޥꥭ Ф ϡ
ߤ뤳 ȡ Ĥޤ get_next_key() Ӥޤ 륳 ɤǤ Υ åɤ ä
Ǥ 礦 ɡ Τ褦 ʥ ɤϡ ޤ Τǡ åɤ ʤ Ƥ ʤ ȹͤ
ޤ
⤷ get_primary_keys() ߤ Υ åɡ ꡢ ARRAY_REF ֤ Ǥ
礦 Ǥ⡢ find('*', { all => 1 }) Ԥ ٤Ƥ KEY ͤ ARRAY_REF ֤
Τ ѥ åɤ פǤ 礦
(KEY1 KEY2)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ͤ HASH_REF ξ
줳 ɤ ǡ ¤ Ǥ 礦 ͤ HASH_REF Ȥϡ Τ褦 ʹ ¤
ͤˤʤ
= {
=>
=>
}
륢 ɥ쥹 硢 ä Ǥ ֤ ͤ Ǥ 礦 Ȥ С ޤȤ
(fml4 )
륢 ɥ쥹 => {
=> ֡
ե 밵 => ʤ
ե ޥå => mime/multipart
};
: fml8 Ǥϡ ޤȤ ʥ ץ ϥ ݡ Ȥ Ƥ ޤ ǡ פǤ
ʤ Ȥ Τ ȹͤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 50.
ץ ֤ (Unix ͥ ) Ѥ ƹԤʤ ޤ fml8 ǥ ݡ Ȥ
å ᥫ ˥ flock(2) ⤷ lockf(2) ˤ ΤߤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
γ
ʤ 餯 giant lock Ǥ 2003/03 giant lock ޤ
ߤǤϡ Ȥˡ ͥ뤬 դ ޤ
Ȥ С Mail::Delivery ϥ С ꥹ Ȥ˥ ǡ ɬ
Ǥ
Mail::Delivery::SMTP κݤˤϥ С ꥹ ȤΥ ɬ Ǥ ߤϡ
Mail::Delivery::SMTP ӽФ FML Υ 饹 ( ¤ FML::Send
FML::Process::Delivery Σ սꤷ ʤ ) Ƥ ޤ
Mail::Delivery::Queue ϸ (mailq ޥ ) ǽ ʤ
ʤΤǡ Ϲͤ ʤ ɤ Ϥ Ǥ
ơ reader writer lock ޤ 礲 Ǥʤ Ȥ⡢ ̤ map إ ˤϥ ɬ
Ǥ write lock ɬ Ȥϸ¤ Ȥ FML/Command/
UserControl.pm FML/Command/Auth.pm ˤ write lock ɬ Ǥ FML/
Credential.pm read lock Ǥ褤 Ǥ
ʤ 顢 ޤΤȤ reader writer lock ϼ ޤ ǡ Ȥκ٤
critical region λ ֤ ˤ Ƥ ޤ ( ꥹ ȥɥ饤 Фǡ
RWlock ɬ ʤۤ ٤ι⤤ ߹ ʤ ޤ )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TODO
*_maps ˤ MUTEX ǥ ĤǤ 䡢 ⤷
IO::Adapter ǥ С ꥹ Ȥ ɤ ˤ READER WRITER LOCK ޤ
줬ɬ ʤۤ ٤ι⤤ ߹ ʤ ޤ [32] Perl thread ФǤ
뤱 ɡ Ū ʼ ʤ ߤ Ǥ ;)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 51. ǡ ١ ⥸ 塼
⤷
̥ͣɥ饤 Фϡ ޤ ޤ Ǥ Ȥ ʤ 顢
Ū ˻ ٤ ǡ ȡ ַв ˼ΤƤ ɤ ǡ ߤ Ƥ ޤ
Ԥ ( ) ɤΥǡ Ǥ ե 륿 ƥ Ƥ
message-id cache ʤɤǤ ɥǡ ١ message-id Υǡ äƤ ޤ
ʬ ˤĤ ƤϽ Ƥ ޤ ʤ Ĥ ֤ϰۤʤ뤿 ᡢ ˼
ɬ
ȤϤ º ꡢ ɴط Ȥ ˽ Ǥ ʤΤǡ ƥ⥸ 塼 Ū ʴط ϼ Τ
褦 ˤʤ Ǥ 礦
⥸ 塼 ---| |----- DB
⥸ 塼 ---| |
⥸ 塼 ---| |
⥸ 塼 ---| |----- (ͭ ¤Ĥ )
Υ DB Mail::Message::DB Τ褦 ʤ Ȥ ץ ۤ
ȹͤ ޤ ǡ Ĥ Ƥϡ ߤΤȤ Tie::JournaledDir ⤷
FML::Cache::Ring Τ Ť줫 Ȥ Ƥ ޤ
ʤ С ꥹ Ȥʤɱ Ū ǡ Ф Ƥϡ DBMS ( ǡ ١ ƥ
) ٤ Ǥ
Ȥϰۤʤꡢ ϤǽҤ٤ ١ Ȥϡ fml8 ư ˻ȤäƤ
ˤʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ū ʥǡ ݻ
Ǥ fml8 ǻȤäƤ 塼 ޤ
Ū ˥ǡ ݻ ˡ Ϥ Ĥ ø ʤ 翿 ʼ Ǥ
˹ͤ LRU ʤɤε ǽ ä ⥸ 塼 ƺ Τ ⤷
ǡ ޤҤȤĤ ä ꤳ ʤ ޤ Ĥޤꡢ ޤǿ virtual memory Τ
褦 ʼ ʤ Ƥ ΤǤϡ Ȥ ȤǤ ⤷ ¤ ʤ顢 ʤ
DBMS [33] ٤ Ǥ 礦
fml8 Ǥϡ ǡ expire λ Υǡ Ѱդ Ƥ ޤ Ĥ
ϡ ֥ ˤ ֤ ä expire ֻ Ѥ ΰ
ɵ ˤ 뤫 Ȥ ۤʤ 뤿
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Tie::JournaledFile 饹
Υե append Ƥ פǤ ε ǽ Tie::JournaledFile
饹 ޤ
Υ 饹 ϡ ǡ ɲä Ƥ ޤ Υǡ Ȥ ˤ Ѥ
ޤ äΥ ڥ졼 Ԥʤ ޤ Ĥޤꥸ 㡼 ʥ뷿 ե 륷 ƥ
(Journalized-FS, LFS (Log Structured File System)( 褦 ʿ Ǥ
Ȥ ϡ Ǹ ä ǡ Ф Ĥޤꡢ ɲä 줿 last match
Ǽ Ф Ƥ ޤ [34]
Υ 饹 ϡ ٳ 뤷 ư ֤Τ Ͽ Ƥ ǡ Ф ƻȤ ޤ Ȥ
С Ͽ confirmation message-id Υ expire ֤
椷 Υ 饹 ϰ ǥե 뤳 ȤˤʤäƤ ǡ ե
դĤ Υե ֤ ɤ Ǥ 礦
ʤ tie() Ȥϰ㤦
key => [
1 ( ɤä Τդ ɤä ι ),
2 ( ɤä Τդ ɤä ι ),
3 ( ɤä Τդ ɤä ι ),
]
Υǡ Ф η Υǡ Ф
get_all_values_as_hash_ref() åɤ ȤDz Ǥ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ ʤ ε first match last match ؤ 뤳 Ȥ Ǥ ޤ ɤ ά │
│ Τ 饹 ֥ Ȥ Ū ˻ ꤹ 뤳 Ȥ 侩 ǥե │
│ last match Ǥ ( Ǹ ǡ Ǥ ) │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FML::Cache::Ring 饹
FML::Cache::Ring 饹 ϡ ˾ ߤ פΥǡ ߤ
ޤ (expire) ˤĤ Ƥϵ ˤ ޤ ֤ǤϤʤ ǡ Υ ̵ 蘆 ǡ
Ѵ ޤ
ǥХå Ѥ Ǥ ä ǽ ʬ ȹͤ ޤ ϻȤ ǥХå Τ
ϡ ɥǥ Ƥ ޤ ΤϷ 顣
Υ 饹 ϡ 쥯 ȥ ( : db/) ˺ 줿ͭ ¸ĤΥե 뷲 ǡ ߤ Ƥ ޤ
Ȥ db/ ǥ 쥯 ȥ 1 100 Υե 뤬 졢 ֤˻Ȥ Ƥ ޤ
Υե 뤰 ä (1 2 3 4 ...) Ȥ Ƥ ޤ (100 ) ȡ
ƾ (1 2 3 4 ...)
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│ Ρ : RingBuffer FML::Cache::Ring ޤ │
│FML::Cache::Ring File::CacheDir ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 52. ǡ ١ ƥ (DBMS) Ȥ
С ꥹ Ȥʤɱ ʥǡ ˤ DBMS ( ǡ ١ ƥ ) ϩ
ȴ Ȥ Τ ߵ
ä DBMS ( ǡ ١ ƥ ) ٤ Ǥ (
ޤ 礦;-) Ϥ ݤȤ Ƥ ١ Ȥϡ ä 礤 DBMS
ˤ Ƥ ޤ
ߡ DBMS RDBMS (MySQL PostgreSQL) LDAP Ǥ
fml8 ư ˻Ȥ ǡ ١ ⥸ 塼 Ĥ Ƥ Chapter 51 Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
DBMS Ȥ ̿ IO::Adapter 饹 ̿ 뤳 Ȥ Ǥ
Υ 饹 ǡ ä ʵ ǽ ޤ
դ˸ ȡ θ ʵ ǽ Ȥ߹ ʣ IO::Adapter ǽ
ɬ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 53. ǥ : ¾ Σ̥ͣ ƥ fml8 Ѵ ϡ
: fml4 fml8 ؤΰܹԤˤĤ
1. /var/spool/ml/elena/ 4.0 8.0 ذܹԤ
Τ褦 ʽ 뤳 Ȥˤʤ
1) fml8 ȡ 뤹 롣 κݡ postfix alias_maps /var/spool/ml/etc/mail/
aliases ( ޤ ʳ Ǥ Τʤ ե 褤) ɲä 롣
2) makefml --force newml elena ν Ԥʤ fml8 ʥե
ɬ ǡ newml Ԥ Ƥ ޤ ۤ 褤 makefml newml Ԥ
뤫 newml μ Τν ƤӽФ 褦 ˤ 뤫 Ϥɤ ( ֤ Ԥμ 褤)
3) /var/spool/ml/elena Υ С ꥹ Ȥ fml8 Ѵ 롣 κݤˤ⡢ Ѵ ʤ
Ȥ ʤ
3-1) IO::Adapter ^# ιԤϥ Ȥ Ȼפä 뤷 Ƥ 롣 ơ actives off
륢 ɥ쥹 Ͼä Ƥ ˸ 롣
3-2) off s=skip ȽƤ on ˤʤäƤ ޤ
3-3) m=... Ĥޤ Ȥ ̵ ʤ롣 ʤ 顢 members # address Ƚ
4.0 Ǥ OK 8.0 ǤϤ Υ ɥ쥹 ϸ ʤ (ǧ ڤ θ ʤ )
ե ޥåȤ warning ٤
4) fml4 aliases ե (/var/spool/ml/etc/fml/aliases) 鳺 ̤
.db 롣
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2. /var/spool/ml/ 4.0 8.0 ذܹԤ
1. ֤ Ŭ Ǥ 礦
ܹԺ ˣͣ ʤ顢 fml4 /var/spool/ml/etc/fml/aliases
ǡ ڤʤ Ǥ 礦 ܹԺ MTA
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: Ʊ ᥤ fml4 fml8 ˻ȤäƤ
(X-Sequence: fml-devel 389 )
Ʊ ᥤ fml4 fml8 ˻ȤäƤ 硢 Τ褦 ۤɤ Ƥ Ȥ褤 Ǥ
礦 䡢 Ⱦü ʥȥ Ϥ ơ ʤ ˡ mergeml Ѵ 뤫 ʤ ˤ Ƥ
̵ Ȼפ ޤ
fml4 Ǥ (site_init.ph Ȥ config.ph)
push(@ACTIVE_LIST,"$DIR/recipients") if( -f "$DIR/recipients" ) ;
fml8 Ǥ (site_default_config.cf config.cf)
html_archive_dir = $ml_home_dir/htdocs
VIII. ⥸ 塼
ѡ ȤǤϽ פʥ⥸ 塼 Ȥ ޤ
Table of Contents
54. IO ؤΥ ץ (IO::Adapter 饹)
55. Mail::Message ⥸ 塼
56. ̤ν
57. Mail::Message::Encode 饹
58. : ץ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 54. IO ؤΥ ץ (IO::Adapter 饹)
IO::Adapter γ
fml8 Υ С ꥹ Ȥϥե 롢 Unix Υ 롼 ס RDBMS ( ١ ƥ
) LDAP ʤɡ ޤ ޤʷ Ǵ ޤ ǥե ϥե
fml8 ǤΥ С ꥹ Ȥ ɤ߽ Ȥ Х 륢 ɥ쥹 / IO::Adapter Ȥ ݥ 饹
̤ ƹԤʤ ޤ 褦 Unix ˤ vfs/vnode ե Ǥ Ȥ ϼ Τ
褦 ˤʤ
use IO::Adapter;
$io = new IO::Adapter $map, $map_params;
$io->open || croak("cannot open $map");
while ($x = $io->get_next_key()) { ... }
$io->close;
$map ϡ map: ҡ Ǥ ߤΤȤ $map ϼ Τ褦 ʤ ǽ Ǥ ʤ file:
Ͼ Ǥ
file:/var/spool/ml/elena/recipients
unix.group:root
nis.group:root
mysql:id
postgresql:id
ldap:id
file: ̾ ե unix.group:root /etc/group root Υ
Υꥹ ȡ nis.group:root NIS root Υ Υꥹ ȤǤ
mysql:id MySQL postgresql:id PostgreSQL ؤΥ Ǥ ldap:id LDAP
ؤΥ Ǥ
ե ϡ ( ʤˤ Ȥޤ Τ ) RDBMS LDAP ̤
Ǥ Ȥ MySQL config.cf mysql:id ǻ ꤵ 줿 ѥ Ѥ ޤ
[mysql:id]
sql_database = fml
sql_password = uja
... ά ...
Υѥ new IO::Adapter Ԥ ˡ ꤹ ( )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IO::Adapter Υ å
ߡ IO::Adapter ʥ åɤϼ ̤
new()
open()
close()
get_next_key()
add(KEY)
delete(KEY)
getpos()
setpos(NUM)
eof()
touch()
find(REGEXP, $args)
KEY ϥǡ ١ Υץ饤 ޥꥭ ǡ 륢 ɥ쥹 Ǥ REGEXP ɽ Ǥ Ƥ
ϥ 륢 ɥ쥹 Ǥ
¿ Υޥåפ 褦 ˤ Ĥ ǡ ˡ Ǿ ¤ξ ԤΥ åɤ
Ƥ ޤ
åɷ ϡ ºݤ˼ ¸ ̤ Ф κݡ ե IO ϡ
SQL Ȥ IO ꤷ Ĥġ åɤλ ͤ Ƥ ޤ Τ ᡢfml4 Υե ˤ
ͳ ˻פ 礦 Τ֤ 礤 Ϲ⤯ ʤäƤ ޤ ơ
Ĺǯ Ǥ Ƥ ǡ ߤλ ͤ ʬ Τ褦 Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml8 ʥ åɤη
åɤη ϡ get_next_key() Τ褦 ˰ ʤ STR STR ֤ ͤˤ Ƥ ޤ
ե Υ 륢 ɥ쥹 Ф Ʋ ͤ 롢 Ȥ ä
¿ Ȥ 뤿
Υ ɥ쥹 Ф ͤ ˤʤäƤ ֤ ͤ⤢
KEY_STR => [
VALUE_STR_1
VALUE_STR_2
VALUE_STR_3
]
Τ褦 ʥǡ ¤ äƤ 뤳 Ȥ Ȥ fml4 actives ϡ 륢
ɥ쥹 Ф Ƥ Ĥ Υ ץ ͤҤ ǡ ä ǡ ¤ ȹͤ ޤ
rudo@nuinui.net s=skip m=xxx.yyy.z # commnet
rudo@nuinui.net => [
s=skip
m=xxx.yyy.z
# comment
]
ޤȤ ȡ ϡ֤ʤ פ STR ( ɽ ) ʤΤ STR Ȱ Ȥ ͤ Ƥ
ޤ ޤ ֤ ͤ STR ARRAY_REF ˤʤ
---------------------------------------
ʤ => STR
STR => STR
ʤ => [STR, STR, ... ]
STR => [STR, STR, ... ]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
file ޥå
file: ե ⤷ ʤ ֥ե פϡ Υƥ ȥե IO
Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
unixgroup ޥå
/etc/group ޤ READ ONLY Ǥ
/etc/group
wheel:*:0:root,rudo,kenken
IO::Adapter Ǥ unixgroup:wheel Ȥ ƥ Ǥ ޤ
$io = new IO::Adapter "unixgroup:wheel";
Ȥ ֥ Ȥ Ф get_next_key() 롼 פΥ С
礦
root
rudo
kenken
Τ褦 ʥե ߤʤ Ƥ ޤ Ĥޤ /etc/group ( ι ) 3 ԤΥե ߤ
Ʊ ȸ ʤ Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NIS ޥå
/etc/group Υ Ȥۤ Ǥ NIS/YP group ˤ Ƥ
Ƥ ۤʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
MySQL ޥå
Ȥ Ƥ ݼ 뤿 ϡ Ȥ Ĥޤ ְ
cf ե ˤ Ƥ ȹͤ ޤ ( Ȥ diff ͤ
Τۤ Ǥ ) ǡ fml8 ξ config.cf SQL
Ƥ ȹͤ ޤ
ǡ [mysql:members] ( Υ ɤ 齪 ǡ ⤷ ϼ =head ʸ ޤ ) Υ֥ ǡ
ޥåפΥ פȼ Ҥ Ƥ ޤ
config.cf ε
member_maps = mysql:members
recipient_maps = mysql:recipients
[mysql:members]
sql_server = localhost
sql_user = fml
sql_password = uja
sql_database = fml
sql_table = ml
sql_find = select * from ...
...
config.cf Ƥ ͤ Ƥ äƤ ޤ ޤ Unix
MS-DOS config.ini Ǥ Unix Ǥϳ Τ Ĥ Τ .ini
Ȥʤ
RDBMS LDAP Ф $config ξ ʤ ᡢ IO::Adapter
new IO::Adapter "mysql:members", $config;
Τ褦 ˸ƤӽФ ɬ ơ ƥ եȥ Ǥϡ Ĥͤ
new IO::Adapter $map, $config;
ȽƤ ɬ $config ϡ Τ褦 ʥϥå 塦 ˤʤäƤ 뤳 Ȥ
Ԥ ޤ $config FML::Config ֥ Ȥ Τ Ǥ
$config => {
[mysql:members] => {
sql_sever => localhost
...
}
}
FML::Config .cf Τ褦 ʥϥå 塦 ޤ
IO::Adapter new() ӽФ ݤˤϡ Ĥͤ FML::Config ֥ Ȥ 褦 ˤ
Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
: SQL ʸ config.cf ˽ˤϡ ( : fml-devel 204)
ؿƤФ줿 ݤˡ Ʒ ѿ config.cf ϴ 뤷 ޤ lexical
scope Ǽ ѿ ɽ ɬ ˤʤ ߤϡ Τ &varname ˡ(
) äƤ ޤ
ɤ ǸƤФ ʤ Τǡ ʥ 륹 פ ѿ ɽ
Ϻ Ǥ ɤ Ȥ Ȥ
: ʲ ϡ ԥꥹ Ȥȥ С ꥹ Ȥ 㤦 Ǥ 륢 ɥ쥹 ˡ fml_address
Ȥ ۤʤ ξ member recipient Ͼ ۤʤ SQL ̿ ˤʤ ̡
Ƥ ޤ
member_maps = mysql:members
recipient_maps = mysql:recipients
[mysql:members]
sql_server = localhost
sql_user = fml
sql_password = uja
sql_database = fml
sql_table = ml
sql_get_next_key = select fml_address from $sql_table
where fml_ml = '$ml_name'
and
fml_domain = '$ml_domain'
sql_getline = select * from $sql_table
where fml_ml = '$ml_name'
and
fml_domain = '$ml_domain'
sql_add = insert into $sql_table
values ('$ml_name', '$ml_domain', '&address', 1, 1)
sql_delete = delete from $sql_table
where fml_ml = '$ml_name'
and
fml_domain = '$ml_domain'
and
fml_address = '&address'
sql_find = select * from $sql_table
where fml_ml = '$ml_name'
and
fml_domain = '$ml_domain'
and
fml_address like '®exp'
[mysql:recipients]
sql_server = localhost
sql_user = fml
sql_password = uja
sql_database = fml
sql_table = ml
sql_get_next_key = select fml_address from $sql_table
where fml_ml = '$ml_name'
and
fml_domain = '$ml_domain'
and
fml_recipient = '1'
sql_getline = select * from $sql_table
where fml_ml = '$ml_name'
and
fml_domain = '$ml_domain'
and
fml_recipient = '1'
sql_add = update ml
set recipient = 1
where fml_ml = '$ml_name'
and
fml_domain = '$ml_domain'
and
fml_address = '&address'
sql_delete = update ml
set recipient = 0
where fml_ml = '$ml_name'
and
fml_domain = '$ml_domain'
and
fml_address = '&address'
sql_find = select * from $sql_table
where fml_ml = '$ml_name'
and
fml_domain = '$ml_domain'
and
fml_recipient = '1'
and
fml_address like '®exp'
off/on ̿ 뤹 fml SQL ɤ ǽ ळ ȤϤ ʤ ΤǤ
ϴ ˤʤ Ǥ Ǥ ͡
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 55. Mail::Message ⥸ 塼
Mail::Message γ
Mail::Message 饹 ϥ Ϥȡ Ϥ 줿 ǡ ¤ ؤΤ ޤ ޤ ʤ ޤ
⤦ ܤ Υ⥸ 塼 Ϥ
( ȥ )
header -> body
( ޥ ѡ Ȥξ )
header -> preamble -> part1 -> part2 -> trailor
Τ褦 ˥ ֥ Ȥ Ĥʤ Ȥʤä ǡ ¤ ʤߤˡ Ⱥ δ֤ double link
list Ǥ Mail::Message Υ 饹 ϡ Τ褦 ʥǡ ¤ Ф ơ ޤ ޤ ʤ
åɤ Ƥ ޤ
κ ʬ 줾 줬 Mail::Message ֥ ȤǤ Ĥޤ Υ å
ޤ륪 ֥ Ȥκ Ȥ
( ޥ ѡ Ȥξ )
header -> preamble -> part1 -> part2 -> trailor
ޤ 礦 κ ü( å ) ϡ Mail::Message Υ פ text/
rfc822-headers ǡ data Mail::Header ֥ Ȥˤʤ part1
text/plain ǡ ֥ ȤΥǡ ʬ ϡ ʸ ( ƥ ) ؤΥ Ǥ
: Mail::Message ⥸ 塼 ޥ˥奢 ( Ѹ )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ⥸ 塼 : Ϥ
parse() åɤϡ ե (̾) ե ɤ߹
ߡ Υǡ ( ) β Ϥ ߤޤ
data_type_list() Ϻ ARRAY REFERENCE η ֤ ޤ Ȥ MIME/
Multipart ϼ Τ褦 ( ʤߤˡ ʲ ϥǥХå ⡼ ɤǽ Ϥ Ǥ )
type[ 1]: text/rfc822-headers | multipart/mixed
type[ 2]: multipart/mixed | multipart/mixed
type[ 3]: multipart.preamble | multipart/mixed
type[ 4]: multipart.delimiter | multipart/mixed
type[ 5]: text/plain | multipart/mixed
type[ 6]: multipart.delimiter | multipart/mixed
type[ 7]: image/gif | multipart/mixed
type[ 8]: multipart.close-delimiter | multipart/mixed
type[ 9]: text/plain | multipart/mixed
ƥ ֥ Ȥμ ̤ Ƥ ޤ ü ϥ mime type Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ⥸ 塼 :
new() åɤ ̾ ˻Ȥ ޤ
MIME/multipart Υ åɤ⤢
build_mime_multipart_chain($args)
parse_and_build_mime_multipart_chain($args)
build_mime_header($args)
: Υ åɤϻȤ Ǥ Υ åɤ ƤӽФ Ƥ ʤ Τǡ
private methods ˰ܹԤ 뤫 ⤷
MIME/mulitpart Ρֺ פˤ Mail::Message::Compose 饹 äƤ ޤ ơ Υ
饹 μ ֤ CPAN MIME::Lite Τ Ǥ :-)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ⥸ 塼 : إå
dup_header() åɤ RFC822 Υإå Τߤԡ ޤ Τ Ϥ
ΤޤޤǤ ʣ 줿 إå ֥ Ȥ ϥ Ǥ Ĥޤꡢ إå 줷
Ƥ Ǥ ͡
$header1 = $message0->dup_header0;
|<--------------- ------------->
$header0 ---> part1 -> part2 -> ...
A
|
$header1 ------+
whole_message_header() åɤϥ Ρ֥إå Υ ֥ ȡפ ֤ ޤ
Ϥʤ פ Ȥ Ʋ
__head_message() Ϻ Υ ֥ Ȥ ֤ ޤ __last_message() Ϻ κǸ ֥
Ȥ ֤ ޤ ⥸ 塼 ǻȤ Ƥ ޤ ϥץ饤 ١ ȡ åɤʤΤǡ Υ
åɤϻȤ Dz Υ ɤϾõ ޤ ʤ __head_message() ϡ ޤ
header ֥ Ȥ ֤ Ȥˤʤ ǡ Ƥ ξ whole_message_header() Ǥ
whole_message_header_data_type() åɤϥ Υ (ʸ ) ֤ ޤ Ĥޤꡢ Υ
ʤ ȤʤΤ ޥ ѡ ȤʤΤ ʤɤξ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ⥸ 塼 : ʸ
Ǥϡ Τ褦 ʥ ֥ Ȥκ Ȥ뤳 Ȥˤ ޤ
(multipart Ǥʤ )
header -> body
(multipart ξ )
header -> preamble -> part1 -> part2 -> trailor
( Ҥη ֤ ˤʤ )
whole_message_header_data_type() åɤϥ Υ (ʸ ) ֤ ޤ
Ĥޤꡢheader Content-Type Ǥ
whole_message_body() åɤ body ʤ part1 Υ ֥ Ȥ ֤ ޤ
whole_message_body_head() åɤ ͤǤ
__head_message() Ϻ Υ ֥ Ȥ ֤ ޤ __last_message() Ϻ κǸ ֥
Ȥ ֤ ޤ Τ ᡢ ޤ header ֥ Ȥ ֤ Ȥˤʤ Τǡ Ƥ ξ
whole_message_header() Ǥ __last_message() ϡ κǸ ʬ ʤΤǥ
ʸ κǸ ( ޤα ü Υ ֥ ) ˤʤ
find_first_plaintext_message($args) ϡ ǽ plain/text פ
Mail::Message ֥ Ȥ ֤ ޤ ե 륿 ǤϺǽ plain/text פΥ
ʬ ܤ 뤳 Ȥ ¿ ᡢ δؿ Ȥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ⥸ 塼 : ֥ Ȥθ
find() åɤϡ Υ פ Mail::Message ֥ Ȥ ǽ Ĥ ֥
Ȥ ֤ ޤ : إå Content-Type: ֤ 櫓 ǤϤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ⥸ 塼 : 롣
print() åɤ (print) Ǥ ǡֽ Ϥ
פ Ϥ Ʋ
print() ˤ CRLF ʤΤ LF ʤΤ mode Ȥ ǰ Τ
set_print_mode(mode) reset_print_mode() Ȥ åɤ raw
ǡ SMTP λ smtp Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ⥸ 塼 : ʴؿ
size() ( ΰ Mail::Message) ֥ ȤΥ ֤ ޤ :
Υ ֤ 櫓 ǤϤ ʤ header_size() body_size() ȡ إå
Ƥ
is_empty() ϥ ֥ ȤΥǡ ɤ Ƥ
륿 Υ ɤ ݤ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ʾ
envelope_sender() ϥ Ծ (ʸ ) ֤ ޤ ʸ ꡢ Envelope
Sender
data_type() åɤ Mail::Message ֥ ȤΥ (ʸ ) ֤ ޤ
Υ סʥޥ ѡ ȤȤ text/plain) ǤϤʤ γ Υ ֥ ȡ פǤ 뤳 Ȥ
Ʋ
encoding_mechanism() åɤ Mail::Message ֥ ȤΥ ǥ ᥫ ˥ (ʸ ) ֤
ޤ ǥ ʤ undef Υ סʥޥ
ѡ ȤȤ text/plain) ǤϤʤ γ Υ ֥ ȡ פǤ 뤳 Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ֥ ¤ Τ
num_paragraphs() åɤϡ Mail::Message ֥ Ȥ ĤΥѥ饰 뤫
( ) ֤ ޤ
nth_paragraph( ) åɤ ֿ ܤΥѥ饰 Ƥ ֤ ޤ ʤ
ܤΥѥ饰 0 ǤϤʤ 1 Ȼ ꤷ Ʋ ϡ ( C Ϥʤ ) ʹ֤
褦 ˡ 1 ޤ ͤˤʤäƤ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message ⥸ 塼 ˥奢 ( Ѹ )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 56. ̤ν
̥ͣɥ饤 ϸ ʸ ɤ˰ Ǥ [35] Ȥ С ե 륿
Subject summary log ʤɤ ɽ Ǥ
ܤȤʤ ե ϡ (1) MIME Encode 줿ʸ decode (2) Perl
ɽ [36] Ѵ ǡ (3) ʤ (4) դ MIME Encode
Ƴ ϲ 롢 Ȥ Ǥ
[ ǰ ]
$string->set();
$string->mime_header_decode();
$string->... ...();
$string->mime_header_encode();
ѹ
Ϥʤ fml8 ƥ summary log ե Ͽ ˤϡ MIME
ɤϤ Ƥ ʤ Τǡ ʤ ɤ ȷ Ͻ
Ѥ ޤ ˤϡ ݤ Ȥ ( : ե
$log_file_charset_ja ) ʸ 沽 ޤ ǥե
( ߴ Τ ) EUC-JP Ǥ
ϤǤϡ ¸ Ĥ Ʋ ⤷ ޤ ¸ ȸ äƤ⡢ ǤϤʤ
Ȥ ʸ̮ ˰ ɽ Ŭ Ǥ
ʤ ޥ Ф ֻ ¸ ˤĤ Ƥ إ ξϤȤ Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
饹::Language::
¸ Υ 饹̾ ֥ 饹::Language:: Ȥʤ γ ʲ ˸ ¸ ⥸ 塼 뷲
Ȥ м Τ褦 ʥ⥸ 塼 뤬
FML::Language::Japanese::String.pm
Mail::Bounce::Language::Japanese.pm
Ԥϡ FML ⥸ 塼 뷲 Τ ʸ̮ ˰ ʸ ؿ ( :
ϰ Ѥˡ Ȥ ) Ƥ ޤ Mail::Bounce ʲ Υ⥸ 塼 ơ
顼 롼 ( : ISP ե ޥåȤΥ 顼
) Ƥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 57. Mail::Message::Encode 饹
[ ] Mail::Message::Encode λȤ
[ ] fml-help ML's Count: 02012, 02013, 02016 ʤ
[ Ȥ ]
* fml 8.0 λȤ
use Mail::Message::Encode;
my $encode = new Mail::Message::Encode;
my $str_euc = $encode->convert( $s, 'euc-jp' );
my $str_euc = $encode->convert( $s, 'euc-jp', 'iso-2022-jp' );
my $encode = new Mail::Message::Encode;
my $status = $encode->convert_str_ref( \$s, 'euc-jp' );
my $status = $encode->convert_str_ref( \$s, 'euc-jp', 'jis' );
my $fp = sub { ... };
$encode->run_in_chcode( $fp, $oout, $in );
* fml 4.0 ߴ λȤ
ues Mail::Message::Encode qw(STR2EUC);
my $euc_s = STR2EUC( $s );
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Mail::Message::Encode λ ( 餹 )
ϥץ饤 ١ ȥ å _convert_str_ref() ˤޤȤ
sub convert # STR
{
my ($self, $str, $out_code, $in_code) = @_;
_convert_str_ref(\$str, $out, $in);
return $str;
}
sub convert_str_ref # STR_REF
{
my ($self, $str, $out, $in) = @_;
_convert_str_ref($str, $out, $in);
}
sub _convert_str_ref # STR_REF
{
my ($str, $out, $in) = @_;
# 1.
⤷ $in ʤ 0
# 2. 饤
if ($in 狼 ä or $in ꤵ 줿) {
$out Ѵ
jcode, Jcode, Encode ʤɤΥ⥸ 塼 뤬
return 1 ;
}
else { # principle of least surprise ?
ʤˤ⤷ ʤ str Τޤ ֤
}
return 0 ; #
}
sub base64 {}
sub quoted_printable {}
Ǥ ͡
$x = $encode->base64($s);
ޤ ߴ Ȥ 塢STR2XXX() ޤ
STR2EUC( $str, [$icode] )
STR2JIS( $str, [$icode] )
STR2SJIS( $str, [$icode] )
convert_str_ref wrap
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
桼 ƥ run_in_chcode()
¸ ϡ ץ 䤹 ʸ ( ) Ѵ Ԥʤ
ؿ ߤ ޤ ǡ ä ؿ դ Ƥ
run_in_chcode() ϡ ˤ $proc Ԥ ޤ ؿ $proc Ԥ ΰ
ϡ 餫 줿ʸ ɤ Ѵ ȡ ؿ $proc Ϥ Ȥ ͤǤ
sub run_in_code
{
my ($self, $proc, $s, $args, $out_code, $in_code) = @_;
my $proc_status = undef;
my $obj = new Mail::Message::Encode;
my $conv_status = $obj->convert_str_ref(\$s, $out_code, $in_code);
# XXX-TODO: validate $proc name regexp.
eval q{
$proc_status = &$proc($s, $args);
};
# XXX-TODO: correct ?
if ($conv_status && $out_code) {
$obj->convert_str_ref($s, $out_code, $in_code);
}
return wantarray ? ($conv_status, $proc_status): $conv_status;
}
Τ褦 ޤ
(1) $s EUC-JP Ѵ
(2) $proc($s, $args); ԡ
(3) $proc μ¹Է ֤
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Chapter 58. : ץ
Ǥϡ ñ 塼 եȤ Ȥꡢ fml8 Υե졼 ץ
ɲä Ϥɤ Τ ޤ ʲ ץ ̾ fmlsch Ȥ CGI
fmlsch.cgi Ǥ
ʤ fml8 ܥ ɥѡ ƥ Ȥ ƽв٤ 륽 եȥ Ǥϡ 3rdparty/ ʲ ֤ǥե
[37] ȡ ե Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : fmlsch 롣
ƥå 1: ȡ fmlsch դ ä
fml/bin/fmlsch.in 륹 Ȥ Ѱդ fml/etc/install.cf.in bin_programs
fmlsch ɲä ޤ bin_programs ˤ 륹 Ȥϥ ȡ 餬 $prefix/bin/ إ
ȡ 뤹 оݤǤ
fml/bin/fmlsch fml/etc/install.cf configure (GNU configure)
Ԥʤ ޤ configure.in ˡ Σ ĤΥե autoconf
Ԥ configure Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ƥå 2: ⥸ 塼
fmlsch μ ΤΥ⥸ 塼 ơ fml/lib/FML/Demo/Calendar.pm ޤ
ޤ ۤ ʥ饤 ֥ Ŭ ͢ Ƥ CPAN
HTML-CalendarMonthSimple-1.02.tar.gz ȡ 뤹
Date-Calc ʤΤ ȡ 뤷 Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ƥå 3: FML::Process::
Ż ۤȤ FML::Demo::Calendar ¹Ԥ ޤ fml8 Υ֡ ȥ
FML::Demo::Calendar ӽФ FML::Process::Calender 饹 ޤ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Caution │
├─────────────────────────────────────────────────────────────────────────────┤
│ 饹 γ fml/etc/modules 꼡 ʤΤǡ FML::Process::Calender Ǥ │
│Ϥʤ ɤγ Ǥ ( FML:: ʳ Ǥ ) ޤ ޤ │
└─────────────────────────────────────────────────────────────────────────────┘
ޤ fmlsch ץ ν ԤȤ ä ޤ ʰ μ fml/lib/FML/Process/
Calender.pm ˽ޤ Υե ˺ Ʋ ( Chapter 32 Ϥ )
ơ ֡ ȥ fmlsch ץ ư 줿 ˤ FML::Process::Calender
ӽФ Ȥ 뤿 fml/etc/modules ե fml/etc/command_line_options ե
fmlsch Υ⥸ 塼 Ȥ б ط ɲä ޤ
FML::Process::Calender ǥ 쥯 ȥ ⥸ 塼 Ŭ ˤѤ ä hack Ƥ
:-) ʤ fmlsch ϵ ǽ Ǿ ʤΤǡ FML::Process::Calender Ǥ
FML::Process::Calender::run() åɤ դ ޤ Ǥ ̤ δؿ
FML::Process::Kernel Υ åɤ Ȥ ޤ ( Ѿ )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ǥ : fmlsch.cgi
¤ λ ⥸ 塼 뤬 FML::CGI:: 饹 ˤʤ fmlsch ξ Ǥ
FML::CGI::Calender FML::Process::CGI Υ ֥ 饹 Ǥ
̤ Τ ˤĤ Ƥ FML::Process::CGI FML::Process::Kernel 褭 ˤϤ 餤 ޤ
ޤ HTML ۤȤ FML::Process::CGI Perl ǥե CGI.pm äƤ ޤ
HTTP header ʤɤ CGI.pm ⥸ 塼 ϡ ޤǤ ¤ν Τ
FML::CGI:: ʲ Υ⥸ 塼 뷲 Ŭ HTML ν Ϥ Ƥ ޤ
IX. Ͽ
Table of Contents
콸( ؿ )
A. repository ȥ ¤
B. SGML ν
C. NetBSD 1.5 Ǥ IPv6
D. [ Ť ] Problem Report ġ ޤȤ
E. ǡ ¤ μ
콸( ؿ )
fml4
fml4 (fml С 4) Τ
fml8
fml8 (fml С 8) Τ
fml-devel
fml8 ȯ Υ ɥ͡ ࡣ
curproc
"current process"
Unix ͥ Ū ˻Ȥ Ƥ ά̾
PCB
Process Control Block ǡ Υץ ξ ޤࡣ ̤ͣ Ȥ Ƥϰۤʤ롣 fml
ǤΥ ؤϡ listserv ̤ͣʤɥ ߥ ץ
롣
Unix ͥ Ū ˻Ȥ Ƥ ά̾
config
configuration
conf
configuration
arg / args
( : argument )
fh
ե ( file handle )
dh
ǥ 쥯 ȥ ( directory handle )
fp
ؿ Υݥ ( function pointer )
Perl Ǥ CODE ȸƤ֤٤ cr ʤɤȽ ʬ Τǡ ץ
Ǥ $fp Ȥ ¿
_ ʤˤʤ
Ū ˥ѥå 饹 ֥ Ȥ ؿ _ ǤϤ ޤ륭 ɤ
Ĥޤ private Ȥ ( ֥ Ȼظ Ȥ ̩ ʰ
private method Ȥ ʤɤȡ Ĥä ޤʤ 褦 ˤ 줿 :-)
r ʤˤʤ
r ϥ (reference) " ֤Ǥ " ϥꥢ ȸƤ֤ Ȥ ¿
̤˶ Ĵ ˻Ȥ Ȥ 뤬 fml8 Ǥϡ ۤȤ Ȥ
STR
ʸ ( string )
쥳 ɤ
JIS SJIS EUC ʤɤ ʤ ߤΤ
2
to Τ ά Ȥ Ƥ褯 Ȥ 롣 ʤȤ 4 ( for ΰ ) 롣
: STR2EUC (STRing to EUC )
use String qw(STR2EUC);
$euc_string = STR2EUC($string);
4
for Ʊ 롣 ޤΤȤ äƤ ̵
ޥ
ʸ fml ؤ ( ޥ ) Ȥ 餫 ν Ƥ
Ρ ̥桼 Υ ޥ ȴ ѤΥ ޥ ( admin ޥ ) 롣
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Appendix A. repository ȥ ¤
ĥ ¤ γ
fml4 Ȱۤʤꡢ ֻȤ ( Ȥ CPAN ) ϲ Ǥ פ fml8 δ Ǥ ʤ ȡ
ʬ ݼ餹 ܤ
餹 ⤷ ϥ饤 ä ꤵ Ƥ ٥ Ȥ˥ǥ 쥯 ȥ ʬ
Ƥ ޤ Ȥ CPAN ݼ餵 Τ cpan/ ǥ 쥯 ȥ ޤ 饤
ʤɤˤ Ƥϡ ФƤ 뤫 ⤷
cpan/ 3rdparty/ ʲ Υ⥸ 塼 fml/ ʲ ǡ ʤ Υ
(wrap) 뤫 ѥå ꥸ ʥ ȿ Ǥ Ƥ ä cpan/ ʲ åץǡ Ȥ뤳 Ȥ ˾ ޤ
Ǥ cpan/lib/ 뤳 Ȥ⤢ cpan/dist/ ϥ ꥸ ʥ ¸
Τǡ ƤϤ ޤ
ʤ site_local/ (ͽ 졢 åȤˤ ߤ ʤ ǥ 쥯 ȥ ) ϡ Υ ȼ module
֤ ǥ 쥯 ȥ ޤ Ĥޤ fml ץ ȤȤ ط Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ȥ ǥ 쥯 ȥ깽¤
/ ʲ Υǥ 쥯 ȥ깽¤
Table A-1. / ʲ Υǥ 쥯 ȥ깽¤
┌─────────────┬───────────────────────────────────────────────────────────────┐
│ ٥ ̾ │ Υǥ 쥯 ȥ ⥸ 塼 │
├─────────────┼───────────────────────────────────────────────────────────────┤
│Documentation│ ɥ Ȥ Ƹ ꡣ ٥ ƺ ꤦ Υǥ │
│/ │쥯 ȥ꤬ │
├─────────────┼───────────────────────────────────────────────────────────────┤
│fml/ │fml8 ץ │
├─────────────┼───────────────────────────────────────────────────────────────┤
│ │CPAN ݼ餵 β Υ⥸ 塼 Ĥ ƤϾ ΤȤ ꡣ ñ │
│cpan/ │ 塼 ʤ ᡢ ʤ fml8 ΥС │
│ │ ˼ ơ ʤ cpan/dist/ ⥸ 塼 ѥå │
│ │ cpan/lib/ ˥饤 ֥ 饹 ˤ 褦 ֤ ޤ │
├─────────────┼───────────────────────────────────────────────────────────────┤
│img/ │Internet Message Group (IM ϲ Τ ͤ │
│ │ OK IMG ǤϤʤ IMG Ȥ ̾ ΤޤȤ ) │
├─────────────┼───────────────────────────────────────────────────────────────┤
│3rdparty/ │ ɥѡ ƥ (ͽ ) ͽ ǡ fml8 ץ ȤȤ ƤϻȤ │
│ │ ޤ │
├─────────────┼───────────────────────────────────────────────────────────────┤
│ │ ǥե Ǥϥ ȥꡦ ĥ ˤϤ Υ ȼ ݼ餷 ⥸│
│site_local/ │ 塼 ǥ 쥯 ȥꡣ ̾ ǡ fml8 ץ │
│ │ ȤȤ ƤϻȤ ޤ │
└─────────────┴───────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
fml/ ʲ
Table A-2. fml/ ʲ Υǥ 쥯 ȥ
┌─────────┬───────────────────────────────────────────────────────────────────┐
│ ǥ 쥯 ȥ │ │
├─────────┼───────────────────────────────────────────────────────────────────┤
│fml/bin/ │/usr/local/bin/ ˥ ȡ 뤹 │
├─────────┼───────────────────────────────────────────────────────────────────┤
│fml/doc/ │Documentation/ Υ │
├─────────┼───────────────────────────────────────────────────────────────────┤
│fml/etc/ │ ե ƥ 졼 ȷ │
├─────────┼───────────────────────────────────────────────────────────────────┤
│fml/lib/ │perl ⥸ 塼 뷲 │
├─────────┼───────────────────────────────────────────────────────────────────┤
│fml/ │ ¹Ԥ ץ μ Ρ ˥⥸ 塼 ƤӽФ Τǡ Τˤ wrapper Ǥ │
│libexec/ │ פʤΤ loader Ǥ │
├─────────┼───────────────────────────────────────────────────────────────────┤
│fml/share│ Υƥ 졼 Ȥʤ │
│/ │ │
├─────────┼───────────────────────────────────────────────────────────────────┤
│fml/utils│ 桼 ƥ Ǥ ȯ Ԥ fml Υ ǻȤ Τ Ǥ │
│/ │ ȡ оݤǤϤ │
└─────────┴───────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Appendix B. SGML ν
fml8 Υɥ Ǥϡ SGML DTD "DOCBOOK" ˻Ȥ Ȥˤ Ƥ ޤ
Ϥ SGML ǽ Ǿ μ ˤĤ ƤΥ Ǥ
SGML νϡ [38] Ǥ HTML ν Ʊ Ǥ Ͽ ǡ 2
3 Ū SGML ƥ 졼 Ȥ ⤷ Ƥ Τǡ ڤ Ƥ С ʤ
ʤ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SGML γ ǰ
SGML ܤ ʸ ( ) ˻Ȥ ޤ ʸ Ϥ Ҥ 뤿 ʤǤ
HTML Τ ȸ ̩ ʤ ȻפäƲ [39]
Ȥ С ܡɤȤ ǰ Ƥߤޤ ޤ ܡɤˤϾϡ Ȥ ä ñ ̤
ϥѥ饰 ʸ ˤϵ Ĥ ꡢ ޤʤɤ ߹ ޤ줿 ꤷ ޤ
γ ǰ ˤϡ Ȥ Сɾϡɤϡ ߤޤ ϡɾϡɤ
ߤޤ ơ ʸ ֤ 饰 פ ֤ Ǥ
ä ǰ ɽ ꤷ DTD (Data Type Definition) Ȥ
ޤ
DTD ϼ ͳ Ǥ ޤ ʺ Ǥ ʤ ï DTD
쥯 Ϥ ǡ Ȥ Τ Ǥ 桹 DTD Ȥ docbook Ȥ
[40] Ȥˤ Ƥ ޤ
DOCBOOK OASIS-0PEN.ORG 餷 Ƥ DTD Ǥ ͭ̾ ʤ ǡ ǥե ȥ
ɤȤ äƤ Ǥ 礦 ( 狼 ɤ ̤Ȥ ;) 饤
ܤ Ƥ ޤ ɥ Ǥ Free Unix ʤɤ ᡢ¿ Υץ ȤǻȤ
Ƥ ޤ
ĤޤꡢSGML Ȥ ΰյ ֤ ʤ Ρפ˵ ʲ ʤ ϶
Ȥ ȤǤ SGML ι ʸ ˤ Ȥ ǤϤ 복ǰ ˽ Ȥ˶
Ȥ ȤǤ
ǡɳ ǰ ɤȤ äƤ Ǥ äơ ɸ ɤ ɤˤĤ ƤϤդ ʤ Ȥ Ʋ Ȥ
HTML Ǥϳ ǰ ȸ ɤ ( ष Ū ) Ϥä Υ Ƥ ޤ
ɤ DTD Ȥ ̤β 凉 륷 ȤȤ Ǥ HTML 4.0
CSS ǰ Ǥ
륷 Ȥε Ҥˤ 줬ɬ Ǥ docbook Ǥ schema (lisp ΰ ) ١
DSSSL (Document Style Semantics and Specification Language) ޤ
ޤ SGML Ǥ Ҥ ʤ Τǡ ɤ ϥ Ǥɤ ȤǤ
HTML ƥ ȡ ROFF PS PDF RTF ᡢ Ѵ Ѱդ
ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
( book ) Υƥ 졼
docbook DTD ˤ book article Ȥ ä ɽŪ ʷ ˤĤ Ƥ
book ŵ Ū SGML Υƥ 졼 Ȥϼ Τ褦 ˤʤ
%include;
]>
&bookinfo;
&preface;
ȥ
ѡ Ȥϡ ܻؤ Ƥ ޤ
&overview;
part title ̤ Ǥ
ܤ ϡ SYSTEM Ȥ ɤΤ 롢 2 ܤǤ include.sgml
ɤ߹ ( include )̿ Ǥ C #include perl require()
Ƥ ޤ
include.sgml ϼ Τ褦 ޤ
ˤ &bookinfo; ̿ bookinfo.sgml include 褦 ˤʤ
Τ褦 ˤ ơ ʸ Τ include ե ʬΥ 뤳 Ȥ Ǥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HTML
ƥࣱ
ƥࣲ
Ȥ
Ĥ
ϤФ ٥
ϼ Τ褦 ˤʤ
• Ĥ
• ϤФ ٥
Υ ƥ orderedlist Ǥ
1. Ĥ
2. ϤФ ٥
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HTML
Ȥ
table description
̾
Ĥ
Ф ٥
ϼ Τ褦 ˤʤ
Table B-1. ơ ֥
┌─────┬──────────┐
│ ̾ │ │
├─────┼──────────┤
│ │ Ĥ │
├─────┼──────────┤
│ │ Ф ٥ │
└─────┴──────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ġ 뷲
SGML HTML ʤɤ 뤿 Ĥ Υġ 뤬ɬ Ǥ ޤ DTD DSL ε
ܤǤ Ȥ Ƥ openjade opensp [41] ɬ ܤΥץ Ǥ 礦 ϥ ץ
Ƽ ˤ 褤 褦 Ǥ
fml8 Ǥϡ ʲ Υץ ä HTML ȥե Ƥ ޤ
• openjade 1.3 ʹ
• opensp 1.3.4 ʹ
¿ OS ǤϤ Υץ Υѥå ƥ ȡ 礦
ޤ SGML ˤ fml/doc/share/sgml/ ˤ fml.dtd fml.dsl Ȥ
ƻȤäƤ ޤ Makefile ˡ Υե ƥġ ɤ Ȥ (openjade
륪 ץ -c -d ץ ) Ҥ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ɤ ѹ
SGML ʹ ¤ Ҥ Ƥ HTML γƥڡ URL Ȥ Ĥ
Ȥ ä " ɤ ε " SGML 뤳 ȤϤǤ ޤ
ɤ DSL ˤ Ҥ뤳 Ȥˤʤ ʤ 顢DSL ܼ LISP (List
Processor) Τǡ LISP Τ Ȥ ȼ꤬ Фʤ Ǥ 礦
ɤ ä Ȥ Ȥ ȤʤΤ ⤷
ʤߤ fml8 DSL ε Ҥ fml/doc/share/sgml/fml.dsl ˤ ä
ʤ ȸ ɤ Ѥ 뤳 Ȥ Ǥ ޤ ;)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ξ
SGML ν Ĥ Ƥ FreeBSD ν鿴 Ը 塼 ȥꥢ ʤɤȤ Ʋ
ɬ ʥġ ȡ Ĥ Ƥ http://www.linuxdoc.org/HOWTO/mini/DocBook-Install/
Ȥ Ʋ
SGML Υ ΰ DOCBOOK definitive guide (O'reilly) Υ ǤȤ
Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Appendix C. NetBSD 1.5 Ǥ IPv6
NetBSD IPv6 β ɤߤʤ Ϥʤ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
IIJ IPv6 ȥ 뷿 ӥ ξ
ޤ ISP IPv6 ɥ쥹 Ƥ ޤ Ȥ 2001:240:22::/
48 ʤɤȤ ä ɥ쥹 ޤ
IPv6 롼 ⡼ ɤ NetBSD gif0 IIJ Υ롼 ȥȥ ĥ
IIJ NOC ¦ 롼
|
| (unnumbered link)
|
NetBSD
|
------------------------ ---
ȥ ĥ ä 塢route6d ޤ IIJ ::/0 Ȥ
ơ 餫 2001:240:22::/48 advertise 뤳 Ȥˤʤ
┌─────────────────────────────────────────────────────────────────────────────┐
│ Warning │
├─────────────────────────────────────────────────────────────────────────────┤
│route6d ˵ ư /64 advertise Ƥ ޤ Τ /48 aggregate │
│뤳 Ȥ 줺 ˤ ޤ 礦 │
└─────────────────────────────────────────────────────────────────────────────┘
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ȥ
gif ե äƥȥ ĥ ꤹ Τ褦 ˤʤ
# ifconfig gif0 tunnel 10.1.1.1 10.2.2.2
ǡ ʬ Υ ɥ쥹 10.1.1.1 10.2.2.2 ȥ ĥ IP ɥ쥹 Ǥ Υ
ɥ쥹 ˤĤ Ƥ Ƥ Ǥ
֡ Ȼ ˼ ưŪ ꤵ ϡ /etc/ifconfig.gif0 ˼ Τ褦 Ƥ ޤ
tunnel 10.1.1.1 10.2.2.2
ȥ 뤬 夬 ä ɤ
% ping6 -n ff02::1%gif0
Ԥ ơ ʣ OK Ǥ ff02 ΰ ʤɤˤĤ Ƥ [NetBSD IPv6 β
] IPv6 ν Ȥ Ƥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
롼 ƥ
IIJ Υ롼 ::/0 (IPv4 ʤ 0/0) Ĥޤ ե 롼 Ȥ ή ޤ
route6d ˤ /etc/rc.conf
route6d=YES route6d_flags="-A 2001:240:22::/48,gif0"
Ƚ
# /etc/rc.d/route6d start
Ԥ Ʋ /48 aggregate Ƥ 뤳 Ȥ Ʋ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
ۥ ȤʤɤؤΥ ɥ쥹 γ
Ŭ դ ꡢrtadvd rtsold Ǽ ư dz Ƥ ꤷ ޤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
http://www.v6start.net/
Introduction to IPv6 http://www.onlamp.com/pub/a/onlamp/2001/05/24/
ipv6_tutorial.html
Getting Connected with 6to4 http://www.onlamp.com/pub/a/onlamp/2001/06/01/
ipv6_tutorial.html
6to4 IPv6 Explained, or: Flogging a Dead Horse http://www.feyrer.de/NetBSD/
6to4.html
www.kame.net
"Implementing AF-independent application"
Interview with Jun-ichiro "Itojun" Hagino about the KAME Project http://
www.feyrer.de/NetBSD/interview-itojun.html
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Appendix D. [ Ť ] Problem Report ġ ޤȤ
Problem Report ġ
bug tracking ƥ ȥ åȥ ƥ ̯ 㤦 Ȼפ ޤ ǤϹ
problem report Ȥ ǤޤȤ ޤ
http://www.daveeaton.com/scm/PMTools.html FAQ [42]
Ĥ Ƥϡ 褤 褦 Ǥ äơ λ ǯ 餤 Ƥޤ
Free Τ ⤤ Ĥ Ǥ ̾ Ȥ ˤΤ GNATS Ǥ 礦 Ȥ
jitterbug Bugzilla debuggs (Debian Bug Tracking System) OpenTrack PTS WREK
Wreq (?) ʤɡ Ƕ ʤ ⥦ ֤ǡ Ȥ ͤ Ф 餫 Bugzilla ¿ Ǥ ͡
ä linux Υڡ http://linas.org/linux/pm.html ޤȤޤäƤ뤫
Ƥޤ
衢 Ƥ ͭ̾ ʤ ץ Ȥ bind
Ȥ 褦 ˤ ⤨ ޤ Ȥ perl.org ΥХ ȥ ġ perlbug
(CPAN ) ¾ Ǥ ޤ Ƥ ʵ ʤ 櫓 ǡ ɤ project ȯ 뤿
Ӥˡ ش bug tracking system ϻȤ ˤ Ȥ project 路
Ƥ ϵ ⴶ ޤ ( )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Call Tracking Problem Tracking
Call Tracking ϡ ͤ Ф б ƥ ֿͤγ ơ ֥
ơ Ȥ ʤ ɬ
Problem Tracking ϡֳ ȯ ץ δ ʤɤǤ ꡢ δ оݤˤϥ ס
Ȥ Ǥʤ 졼 䤽 Υƥ ȤޤǤ ޤ
ʤ Configuration Management Ȥ ñ Problem Tracking ζ ٤˰ ֤ ޤ
CVS ʤɤΥġ Τ ȤǤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
status ǻȤ
Ȥ GNATS Ǥ
open
analyzed
feedback
closed
suspended
¾
NEW
ASSIGNED
REOPENED
RESOLVED
VERIFIED
CLOSED
ʤɤ⤢ jitterbug
all
pending
replied
unreplied
status ˤ Τ ʤ ( Ǥ Τ ?)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
GNATS (GNU Problem Report Management System)
¸ ͭ̾ bug tracking system ޤ Ȥˤ GNATS μ 褦 http://
www.netbsd.org/Misc/send-pr.html
send-pr
To: gnats-bugs@gnats.netbsd.org
Subject: no definition for 9801N-J12 pcmcia card
From: fukachan@fml.org
Reply-To: fukachan@fml.org
X-send-pr-version: 3.95
>Submitter-Id: net
>Originator: Ken'ichi Fukamachi
>Organization: fml.org
>Confidential: no
>Synopsis: no definition for 9801N-J12 pcmcia card
>Severity: non-critical
>Priority: low
>Category: kern
>Class: sw-bug
>Release: NetBSD 1.5.1_BETA2
>Environment:
System: NetBSD rudo.home.fml.org 1.5.1_BETA2 NetBSD 1.5.1_BETA2 (BETH) #0: Thu Sep 27 12:09:39 JST 2001 fukachan@rudo.home.fml.org:/usr/NetBSD-release-1-5/src/sys/arch/i386/compile/BETH i386
>Description:
NEC 9801N-J12 pcmcia card does not work with NetBSD/i386 (netbsd-1-5
branch). NetBSD kernel detects it as "ne" but it cannot be
configured.
I do not test it with NetBSD-current but it looks NetBSD-current has
no definition for this card.
>How-To-Repeat:
attach it.
>Fix:
apply the following patch.
By the way, this card looks an OEM of IBM INFOMOVER.
So, the following definition may be more appropriate ?
{ PCMCIA_STR_NEC_9801N_J12,
PCMCIA_VENDOR_IBM, PCMCIA_PRODUCT_IBM_INFOMOVER,
PCMCIA_CIS_NEC_9801N_J12,
0, 0xff0, { 0x00, 0x00, 0x4c } },
Index: if_ne_pcmcia.c
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/pcmcia/if_ne_pcmcia.c,v
retrieving revision 1.62.4.5
diff -u -u -b -r1.62.4.5 if_ne_pcmcia.c
--- if_ne_pcmcia.c 2001/06/16 19:18:50 1.62.4.5
+++ if_ne_pcmcia.c 2001/09/26 09:42:26
@@ -200,6 +200,11 @@
PCMCIA_CIS_SVEC_PN650TX,
0, -1, { 0x00, 0xe0, 0x98 }, NE2000DVF_DL10019 },
+ { PCMCIA_STR_NEC_9801N_J12,
+ PCMCIA_VENDOR_NEC, PCMCIA_PRODUCT_NEC_9801N_J12,
+ PCMCIA_CIS_NEC_9801N_J12,
+ 0, 0xff0, { 0x00, 0x00, 0x4c } },
+
/*
* This entry should be here so that above two cards doesn't
* match with this. FNW-3700T won't match above entries due to
Index: pcmciadevs
===================================================================
RCS file: /cvsroot/syssrc/sys/dev/pcmcia/pcmciadevs,v
retrieving revision 1.93.2.7
diff -u -u -b -r1.93.2.7 pcmciadevs
--- pcmciadevs 2001/06/16 19:19:12 1.93.2.7
+++ pcmciadevs 2001/09/26 09:42:26
@@ -43,6 +43,7 @@
vendor FUJITSU 0x0004 Fujitsu Corporation
vendor PANASONIC 0x0032 Matsushita Electric Industrial Co.
vendor SANDISK 0x0045 Sandisk Corporation
+vendor NEC 0x00a4 NEC
vendor NEWMEDIA 0x0057 New Media Corporation
vendor INTEL 0x0089 Intel
vendor IBM 0x00a4 IBM Corporation
@@ -83,6 +84,9 @@
/*
* List of known products. Grouped by vendor.
*/
+
+/* NEC */
+product NEC 9801N_J12 0x0002 NEC PC-9801N-J12 LAN
/* Adaptec Products */
product ADAPTEC APA1460 0x0001 Adaptec APA-1460 SlimSCSI
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Jitterbug
http://samba.anu.edu.au/jitterbug/ ȡ simple is best ظ ʤ Ȥ
礦 samba bug tracking 饹 ȡ C WWW
ե Τ (URL ߤ 狼 )
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Call Center, Bug Tracking and Project Management Tools for Linux
http://linas.org/linux/pm.html
ߤޤ ޤ 褯 ߤƤʤ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Perforce Defect Tracking Integration Project
http://www.ravenbrook.com/project/p4dti/
ߤޤ ޤ 褯 ߤƤʤ Ǥ
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Appendix E. ǡ ¤ μ
curproc ֥
FML::Process::Distribute äƤ Υǡ ¤
__parent_args => HASH {
ARGV => ARRAY
___shared_memory___ => HASH
argv => ARRAY
cf_list => ARRAY
curproc => FML::Process::Distribute
fml_version
main_cf => HASH
module_info => HASH
myname
need_ml_name
options => HASH
program_fullname
program_name
}
__print_style => SCALAR
__start_time => SCALAR
article => HASH {
body => Mail::Message
header => FML::Header
message => Mail::Message
}
config => FML::Config
credential => FML::Credential
incoming_message => HASH {
body => Mail::Message
header => FML::Header
message => Mail::Message
}
log_message_queue => FML::Log::Print::Simple
main_cf => HASH {
_hints => HASH
config_dir
debug
default_command_line_option_config
default_config_cf
default_config_dir
default_cui_menu
default_domain
default_gui_menu
default_ml_home_prefix
default_module_config
default_paths_cf
domain_default_config
domain_default_config_cf
exec_prefix
executable_prefix
fml_group
fml_owner
fml_version
group_writable_config_dir
lib_dir
libexec_dir
local_lib_dir
ml_home_prefix_maps
prefix
prefix_dir
primary_ml_home_prefix_map
share_dir
site_default_config_cf
virtual_maps
}
pcb => FML::PCB
scheduler => FML::Process::Scheduler
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PCB Υ ƥ
PCB ǻȤäƤ 륫 ƥ ⥸ 塼 롢 ؿ ꥹ ȤǤ
module function category
<-- (get value)
--> (set value)
--------------------------------------------------------------------------------
State command_context_get_ml_name <-- process_command
State command_context_get_admin_auth <-- process_command
State command_context_get_normal_stop <-- process_command
State command_context_get_need_confirm <-- process_command
State command_context_get_stop_process <-- process_command
State command_context_get_admin_password <-- process_command
State command_context_get_try_admin_auth_request <-- process_command
State command_context_set_ml_name --> process_command
State command_context_set_admin_auth --> process_command
State command_context_set_normal_stop --> process_command
State command_context_set_need_confirm --> process_command
State command_context_set_stop_process --> process_command
State command_context_set_admin_password --> process_command
State command_context_set_try_admin_auth_request --> process_command
State command_context_reset_try_admin_auth_request --> process_command
State article_get_id <-- article_message
State article_set_id --> article_message
Utils incoming_message_get_cache_file_path <-- incoming_message
Utils incoming_message_set_cache_file_path --> incoming_message
State filter_state_get_error <-- filter_state
State filter_state_get_tempfail_request <-- filter_state
State filter_state_spam_checker_get_error <-- filter_state
State filter_state_virus_checker_get_error <-- filter_state
State filter_state_set_error --> filter_state
State filter_state_set_tempfail_request --> filter_state
State filter_state_spam_checker_set_error --> filter_state
State filter_state_virus_checker_set_error --> filter_state
State smtp_server_state_get_error <-- smtp_transaction
State smtp_server_state_set_error --> smtp_transaction
Utils incoming_message_get_current_queue <-- incoming_smtp_transaction
Utils incoming_message_set_current_queue --> incoming_smtp_transaction
Fake _get_emul_domain <-- faker
Fake _get_emul_ml_list <-- faker
Fake _get_emul_user_list <-- faker
Fake _set_emul_domain --> faker
Fake _set_emul_ml_list --> faker
Fake _set_emul_user_list --> faker
Error finish <-- error
Error run --> error
Kernel sysflow_finalize_stderr_channel <-- stderr
Kernel sysflow_finalize_stderr_channel <-- stderr
Kernel sysflow_reopen_stderr_channel --> stderr
Kernel sysflow_reopen_stderr_channel --> stderr
Kernel sysflow_finalize_stderr_channel --> stderr
State restriction_state_get_deny_reason <-- check_restrictions
State restriction_state_set_deny_reason --> check_restrictions
State current_process_get_ml_name <-- current_process
State current_process_set_ml_name <-- current_process
Utils langinfo_get_charset <-- charset
Utils langinfo_get_charset <-- charset
Utils langinfo_set_charset --> charset
Utils langinfo_get_language_hint <-- language_hint
Utils langinfo_set_language_hint --> language_hint
State error_message_get_count <-- reply_message_count
State error_message_set_count <-- reply_message_count
State error_message_set_count --> reply_message_count
Notes
[1] fml4 Υ åȥޥ 4.3 BSD (SONY NeWS) ǡ CPU MIPS3000
ä Ǥ
IBM ߴ PC (i386 i486) ڤ Ƥ Τϡ ⤦ ftp.fml.org
( phys.titech.ac.jp ɥᥤ ) i486 Ǥ
ơ 200 ߡ IBM PC 40 ߤ 餤 äǤ
쥯 ȥ NFS ϻȤäƤ ޤ ֣̥ͣ Ф ʤ
ݤϥ Τߡ Ȥ Ƚ ޤ ޤ LDAP RDBMS ʤ
ɬ ʤ ä ʬ ۤɥޥ 긵 ˤ ( )
곰 Τ Ф Ƴ ϡ ꡢ ̵
ΤǤ ( 20 ǯ δ ߤ Ǥ )
[2] ʼ ϡ ɤ ʤ ǡ 2822 ( ...) ʤɤȸƤФ 褦 ˤʤ
Ǥ 礦 ⡢ ǽ ̾ΤȤ ơ ĤޤǤ ̤ 뤳 ȤǤ 礦
[3] Ȥ⡢ 줬 ä SPAM Ƥ Ǥ
[4] fml8 /usr/local/etc/fml/ ʲ Υե 뷲 fml4 /usr/local/fml/.fml ʲ
Υե 뷲 /usr/local/etc/fml/site_default_config.ph ʤɤ Ƥ ޤ
ɬ б Ƥ ǤϤ
[5] fml4 site_init.ph ΤǤ
fml4 Ǥϼ Τ褦 ߹ ޤ
InitConfig {
SetDefaults { ... };
LoadConfig {
include default_config.ph;
include site_init.ph;
include config.ph;
include site_force.ph;
include sitedef.ph;
}
}
fml8 Ǥ
/usr/local/etc/fml/$fml_version/default_config.cf
/usr/local/etc/fml/site_default_config.cf
/usr/local/etc/fml/domains/$DOMAIN/default_config.cf
/var/spool/ml/elena/config.cf
Τ褦 ˤʤäƤ ޤ site_force.ph б 뤬 äƤ⤤ ʤ Τǡ
ͽ Ϥ
[6] ե ĥ Ҥȥե ޥåȤˤ
[7] fml4 site_force.ph ΤǤ
[8] դˡ makefml/fml Υ Ȥ ӽФ ˤϡ 塼 ν Ϥ
ˤ 뤳 Ȥ ä Ϥ ¿ 뤵
Ǥ
[9] ȸ äƤ ǡ 䡢 β 뤳 ȤϤʤ ĵ ޤ
Ƥϡ GUI θ ɤ ( ) ٤ ˤ ɤ ʤ ƤϤ ʤ Ǥ 礦
¹ԥե Ȥ˰ۤʤ Ǥ ưŪ ؤ 뤳 Ȥ
ޤ ( ʤ ȤϤʤ ΤǤ Υ ¸ Ƥʤ Τǡ
Ƥ ޤ ޤ ;-) 䡢 ʬŪ ˽ ʡ 衢
ü Ǥ
[10] ǥե apache Ǥ ~fml/ ؤΥ Ͻ Ϥ ʤΤǡ apache
ɬ Ǥ ǥե Ǥϡ ʹ ε ˤʤäƤ ޤ
[11] ѥ ڥ ƥ Ѥ ⤵ Ȥ ˾ ޤ
[12] Ѱդ ϡ ñ OS 桼 rudo Ф褤 Ǥ 礦
:
% su root
# useradd rudo
[13] fml 4.0 Τ褦 subscribe ޥ λ ä Ǽ Ƥ ޤ
С config.cf Ǻ٤ ǡ Ȥ ˡ
subscribe ޥ ѹ ñ Ǥ
[14] ˳ Ƥ ȡ ´ 餤 ˡ 礦 ɤ ʤ ʤ ˡ ï
ͤ 顢 :-)
[15] ʤ ǥե site_default_config.cf ˻Ź ޤ ޤ Ĥޤ
fml8 Υǥե Ǥ
[16] fml4 ADDRESS_CHECK_MAX ѿ
[17] ɤ Ƥ⤳ ɬ ǡ Ĥ 褦 ˡغǸ ͡٤Ǥ Ĥޤ걿 ˤ ʹ֤
Ȥ ȤǤ Ū Ǥ
[18] դˤ С ߡ ɥᥤ Ķ ݥ Ȥ 뤷 Ƥ Ǥ ͡ ޤ ޤꤽ
̵ Ȼפ ޤ ɡ
[19] X0201 Shift_JIS ˤ 沽 Ȥ ʬ Ǥ Ǥ UTF-8 λ ʤΤǡ
⤢
[20] إå Ƥ 륳 ޥ 褤 Ǥ 礦 ͡ Ǥ⡢̤
[21] ȥ ʳ ɬ ǤϤ ȥ 塼 Ǥ ߤ ɬ
Ǥ 礦 Ȥ С ΡʤΤ ˵ ư 줿 ˥ץ ü ˽ λ
塼 ߤ Ȥ ä ϡɤ ʤΤǤ 礦
[22] fml8 ϼ Message-Id: ε Ͽ äƤ ޤ fml8
Message-Id: Ʊ Ȥä ǽ ̤ ᤷ ޤ
ꥹ Ȥ 뤬ʣ 롢 Ĥޤ fml8
ǤϤʤ Τ Ȥ MTA ˤ Τۤ ⤤ Ǥ fml8 MTA
Ǥ fml8 ˤ ꤨ ޤ
[23] .mc .cf ǡ ʤ ʤ sendmail ߤ Ǥ ;)
[24] perl tie()
[25] Τˤϡ ̤ϣ ߣ ι ĤΥ֥ Ƥ Τ Σ Ĥ
ȤäƤ ޤ
[26] Τ ᡢ¿ ξ FML::Process::Kernel Υ åɤ CGI::Kernel ǥ Х ɤ
ꡢ ľ ƤФ Ȥϵ Ǥ
[27] UNIX Ǥ cat(1) Ǥ K&R κǽ ˽ФƤ 롢
Ƥ :
int c;
while ((c = getchar()) != EOF) { putchar(c);}
Υ Ǥȸ 礦
[28] FML::Process::Kernel
[29] s ϥǥե Υ Ȥʤ
[30] : admin ޥ user_command_mail_allowed_commands ǵ ޤ
[31] ᥤ ʤ ϡ ǥե ɥᥤ ޤ ľ Ǥ
[32] READ פǤ 礦 䡢 㤦 Ǥ 礦 chaddr sleep
餱 Ǥ ;)
[33] DBMS = DataBase Management System
[34] last match ʾ ǽ Ǥ Υ פ Ƥ Ȥǡ ǡ
Ǥ ޤ ޤ last match first match ؤ 뤳 Ȥ ޤ
[35] ε Ͽ ⡢ ˻Ĥ Ƥ ޤ ̥ͣɥ饤 ϸ ʸ ɤ˰
Ǥ ( ʳ Ǥ ɤ EUC Τ ) Ȥ С ISO-2022-JP EUC
ǹԤʤ Ƥ ޤ ISO-2022-JP Ȥ ޤ
(UNIX ) ץ ( ȯ) Ǥ EUC 䤹
[36] ߤ Perl ܤ UTF-8 ١ Perl ɽ Ѵ ʸ ν
Ԥä Х ȥ١ Ȥ ͤ ˤʤäƤ ޤ ɽ ե饰
ꤷ ʤ Ū ʥХ ȹͤ ޤ ڤ
ޤ
[37] ȤϤ fml ȥ
͡ ɲäǺѤ Ρ Ǥ ɥѡ ƥ ʲ ˥ Ȥ
फ ȡ
֤ ä ϡ ɥѡ ƥ ʲ fml ȥ ͤˡ ȡ 켰
ۤ ڤǤ 礦
⡢ ȥåץǥ 쥯 ȥ Makefile configure ѹ Ǥ ʤ
[38] HTML SGML α ( Ǥ ̾ ) Τ ܼ ʥ å HTML
Ȥ Ȥˤʤ
[39] Τˤϡ SGML ΰ ե ޥå Ǥ Τ פ HTML Ǥ HTML
뤫 ̾ ˤʤäƤ ޤä Τǡ HTML Τ ȸ ̩ ʤ ġפȤ ä :)
[40] 桹 DOCBOOK ͳ ϴ ǡ ¿ ξ ǻȤ Ƥ 뤫 Ĥޤꡢdocbook
Υ ¿ Ȥ Ǥ⤢
[41] opensp openjade ѥå ˴ޤޤ ޤ
[42] http://www.iac.honeywell.com/Pub/Tech/CM/PMTools.html Τ ä