  qmail  majordomo  distribute ̃CXg[Ɛݒ
   (koyama@ec.tmit.ac.jp)
  1997 N 5  20 

  ́̕CSlackware 3.2(Linux 2.0.29) ւ qmail  majordomo 
  distribute ̃CXg[Ɛݒ܂Ƃ߂̂łBqmail  MTA(Mail
  Transfer Agent) ŁCmajordomo  distribute  ML(Mailing List) ̃\t
  głBȉł́C133.10.32.20(ecpxb.tmit.ac.jp) relay.ec.tmit.ac.jp
  ƂāCpractice@relay.ec.tmit.ac.jp Ƃ ML 쐬Ƃ
  Ă܂B

       [ҏW({i(shom@i.h.kyoto-u.ac.jp)F҂̂܂
        LaTeX ŃĂ̂񋟂ĉA linux-
       doc-sgml ɕϊ܂]

  1.  qmail

  qmail ́Csendmail ɑ\ MTA ̈ŁCsendmail ̑֕Ƃ
  ċ@\܂B500 K͂ ML ̏ sendmail ł 3`10 Ԓx
  ܂Cqmail ͂10`30 xōsƂł܂B

  1.1.  CXg[

  ڂ INSTALL t@CQƁB

  (1) qmail ̃fBNg߂܂Bqmail ́C̃fBNgɂׂ
  ̃[ queue ܂B̃fBNg͎}ṼfBXNɂK
  v悤łBNFS ɂ鉓u}ṼfBXNgƂ͂ł܂
  B{̗R͂킩܂񂪁CԂCx邩ł傤Bf
  tHg /var/qmail łB̃fBNgύXɂ́C conf-
  home.h t@CҏWĂBȉł́CftHg/var/qmail
  fBNgŘbs܂B̃fBNg쐬ĂB

       # mkdir /var/qmail; chmod 755 /var/qmail

  (2) qmail g user  group o^܂Bڂ INSTALL.ids t@
  CQƁBȉ group  /etc/group ɓo^C

  ______________________________________________________________________
  qmail:*:2107:
  nofiles:*:2108:
  ______________________________________________________________________

  ȉ user  /etc/passwd ɓo^܂B

  ______________________________________________________________________
  alias:*:7790:2108::/var/qmail/alias:/bin/true
  qmaild:*:7791:2108::/var/qmail:/bin/true
  qmaill:*:7792:2108::/var/qmail:/bin/true
  qmailp:*:7793:2108::/var/qmail:/bin/true
  qmailq:*:7794:2107::/var/qmail:/bin/true
  qmailr:*:7795:2107::/var/qmail:/bin/true
  qmails:*:7796:2107::/var/qmail:/bin/true
  ______________________________________________________________________

  qmail ́Croot ł̎sł邾邽߂ɁC user 
  group g܂B user  group ύXɂ́C conf-
  user.h t@CҏWĂB

  (3) ȉ̃R}hs܂B

       # make
       # make man
       # make setup
       # make check

  (4) qmail ̊eݒ́Cɐݒ肵 qmail ̃fBNgCuserCgroup
  ̕ύXC/var/qmail/control/ ȉ̃t@Cōs܂(ڂ
  INSTALL.ctl t@CQƂĂ)B̍ۂɁCqmail ̍ăRpC
  ͕Kv܂Bʏ́Ccontrol/me t@CCftHgl
  ܂܂ł悢̂ŁCɐݒ肷Kv͂܂B control/me t@C
  ́C}V FQDN w肵܂B̂ق̃t@C͕KvɉĐݒ
  ĂB

  t qmail-makectl XNvgs΁Ccontrol ȉ̃t@C
  ȒPɐݒ肷邱Ƃł܂B

       # ./qmail-makectl

  ̃XNvg͎}V FQDN  DNS oRŐ肵C̒l
  control/me ɏ݁C control/locals ̊֘At@Cɒl
  ݂܂B

  ȉɐݒ܂B

  ______________________________________________________________________
  -- control/me --
  relay.ec.tmit.ac.jp
  -- control/defaultdomain --
  ec.tmit.ac.jp
  -- control/plusdomain --
  tmit.ac.jp
  -- control/locals --
  localhost
  ecpxb.tmit.ac.jp
  ecpxb.ec.tmit.ac.jp
  relay.ec.tmit.ac.jp
  -- control/rcpthosts --
  localhost
  ecpxb.ec.tmit.ac.jp
  relay.ec.tmit.ac.jp
  ----
  ______________________________________________________________________

  control/me ͎}V FQDNCcontrol/defaultdomain ̓zXgw
  ꂽƂɕthCC control/plusdomain ̓zXg
  ``+'' w肳ꂽƂɕthCłB

  control/locals ɓo^ꂽhCւ̃[͎}Vւ̃[Ƃ
  ď܂Bcontrol/rcpthosts ɂ͎}Vւ̃[ƂĎ󂯎
  [̃hCo^܂B

  ܂Cconcurrencylocal  concurrencyremote ɂ́C}VƉu}V
  Ƃ̊Ԃœɏ郁[(SMTP ڑ)ݒ肵܂BftHgl
   concurrencylocal 10Cconcurrencyremote 20
  Bcontrol/concurrencyremote ̏ɊւĂFAQt@CQƂĂ
  B

  (5) qmail  alias ֘A̐ݒ /etc/aliases ł͂ȂC ~alias fB
  Ng ~user fBNgȉ .qmail-* t@Cōs܂(ڂ
  INSTALL.alias t@CQƂĂ)B

  (6) { alias ̐ݒ ~alias/.qmail-* t@Cōs܂BႦ
  ΁Croot  alias  ~alias/.qmail-root t@Cɐݒ肵܂Bȉ̃R
  }hs΁CpostmasterCmailer-daemonCroot ̊e alias ݒ
  邱Ƃł܂B̐ݒŁC̃AhXւ̃[
  ~alias/Mailbox ֕ۑ܂B

       qmail ́C/usr/spool/mail ł͂ȂC~user/Mailbox Ƀ[
       ۑ܂Bڂ INSTALL.mbox t@CQƂĂ
       B

       # (cd ~alias; touch .qmail-postmaster .qmail-mailer-daemon .qmail-root)
       # chmod 644 ~alias/.qmail*

  epғƎ alias ̐ݒ ~user/.qmail-* t@Cōs܂Bqmail
  ł́Cep҂Ǝɕ alias ݒ肷邱Ƃł܂BႦ΁C
  p foo ́Cfoo-group ƂAhX alias  ~foo/.qmail-group
  t@CŐݒ肷邱Ƃł܂B

  qsmhook gƂŁCalias ̎w /etc/aliases ōs
  C/usr/spool/mail Ƀ[ۑƂ sendmail ݊
  ̓ qmail Ɏw邱Ƃł܂C͎~߂ق
  悢炵łBڂ INSTALL.qsmhook t@CQƂ
  ĂB

       ʂ̗p҂ sendmail  qmail ֈڍsƂ̂
       ́C qmail-upgrade.* t@Cɂ܂Ƃ߂Ă܂B

  1.2.  ڍsÕeXg

  (1) qmail ̓mF܂Bȉ̃R}hsāCqmail N
  ĂB

       # env - PATH="/var/qmail/bin:$PATH" qmail-start splogger qmail &

  /usr/adm/messages t@CɕۑꂽO qmail ̋NmF
  Bȉɗ܂B``running'' łΐC ``cannot
  start'' łΎsłB

       Apr 28 02:17:00 ecpxb qmail: 862161420.691666 running

  ps R}hłNmFĂB

       # ps aux | grep qmail
       qmails    1635  0.0  1.7   876   268  p0 S   02:17   0:00 qmail-send
       qmaill    1636  0.0  1.9   844   292  p0 S   02:17   0:00 splogger qmail
       root      1637  0.0  1.4   840   212  p0 S   02:17   0:00 qmail-lspawn
       qmailq    1639  0.0  1.5   836   224  p0 S   02:17   0:00 qmail-clean
       qmailr    1638  0.0  1.3   836   208  p0 S   02:17   0:00 qmail-rspawn
       root      1659  0.0  2.2   932   328  p1 S   02:23   0:00 grep qmail
       #

  4  qmail (qmail-send  qmails ŁCqmail-lspawn  root ŁC
  qmail-rspawn  qmailr ŁCqmail-clean  qmailq) ƁCsplogger 
  ĂΐłB

  (2) }V玩}Vւ̃[̃eXgs܂ (me ͐p
  ҖgĂ)B

       % echo to: me | /var/qmail/bin/qmail-inject

  ̌ʁC ~foo/Mailbox Ƀ[͂Ă邱ƂƁC
  /usr/adm/messages ̃OmFĂBȉɃO̗܂
  (53  20345 ͎s邽тɕς܂)B

       qmail: new msg 53
       qmail: info msg 53: bytes 246 from <me@relay.ec.tmit.ac.jp> qp 20345 uid 666
       qmail: starting delivery 1: msg 53 to local me@relay.ec.tmit.ac.jp
       qmail: delivery 1: success: did_1+0+0/
       qmail: end msg 53

  (3) }Vł̃G[[̃eXgs܂B

       % echo to: nonexistent | /var/qmail/bin/qmail-inject

  ȉɃO̗܂B܂CG[[ ~/Mailbox ɖ߂Ă
  邱ƂmFĂB

       qmail: new msg 53
       qmail: info msg 53: bytes 246 from <me@relay.ec.tmit.ac.jp> qp 20351 uid 666
       qmail: starting delivery 2: msg 53 to local nonexistent@relay.ec.tmit.ac.jp
       qmail: delivery 2: failure: No_such_address.__#5.1.1_/
       qmail: bounce msg 53 qp 20357
       qmail: end msg 53
       qmail: new msg 54
       qmail: info msg 54: bytes 743 from <> qp 20357 uid 666
       qmail: starting delivery 3: msg 54 to local me@relay.ec.tmit.ac.jp
       qmail: delivery 3: success: did_1+0+0/
       qmail: end msg 54

  (4) }V牓u}Vւ̃[̃eXgs܂B

       % echo to: koyama@ec.tmit.ac.jp | /var/qmail/bin/qmail-inject

  ȉɃO̗܂B܂C[u}Vɓ͂Ă邱Ƃm
  FĂB

       qmail: new msg 53
       qmail: info msg 53: bytes 246 from <me@relay.ec.tmit.ac.jp> qp 20372 uid 666
       qmail: starting delivery 4: msg 53 to remote koyama@ec.tmit.ac.jp
       qmail: delivery 4: success: 1.2.3.4_accepted_message./...
       qmail: end msg 53

  (5) }V postmaster ւ̃[̃eXgs܂B[
  ~alias/Mailbox ɓ͂Ă邱ƂmFĂB

       % echo to: POSTmaster | /var/qmail/bin/qmail-inject

  (6) }V postmaster ւ̃[̃eXgs܂B[
  ~alias/Mailbox ɓ͂Ă邱ƂmFĂB

  (7) oEh[̃eXgs܂B[̏I ``.'' ł͂
  C CTRL-D Ŏw肵ĂBoEh[ɊւG[[
  ~alias/Mailbox ɓ͂Ă邱ƂmFĂB

       % /var/qmail/bin/qmail-inject -f nonexistent
       To: unknownuser
       Subject: testing

       This is a test. This is only a test.
       (CTRL-D)
       %

  (8) p҂ ~/.qmail-* t@Cɂ alias ̃eXgs܂B
  āC~me/.qmail-groups 쐬܂B

       % cat > ~me/.qmail-groups
       |groups >> MYGROUPS; exit 0
       (CTRL-D)

  ŁCme-groups Ƀ[āC~me/MYGROUPS t@C group id 
  Ă邩ǂmFĂB

       % /var/qmail/bin/qmail-inject me-groups < /dev/null

  1.3.  sendmailqmailւ̈ڍs

  (1) }V̋NɁCsendmail ł͂ȂCqmail N悤ɐݒ肵
  ܂Bڂ INSTALL.boot t@CQƂĂB̗ł́CN
  ɎsXNvg(/etc/rc.d/rc.M) sendmail NĂ
  Ƃ܂B

  ______________________________________________________________________
  # Start the sendmail daemon:
  if [ -x /usr/sbin/sendmail ]; then
    echo "Starting sendmail daemon (/usr/sbin/sendmail -bd -q 15m)..."
    /usr/sbin/sendmail -bd -q 15m
  fi
  ______________________________________________________________________

  ̕ȉ̂̂ɒu邱Ƃɂ܂B

  ______________________________________________________________________
  env - PATH=''/var/qmail/bin:$PATH'' csh -cf 'qmail-start splogger qmail &'
  ______________________________________________________________________

  (2) s sendmail ~߂܂Bȉ sendmail ~߂菇
  B

  1. ݂sendmail daemon  kill -STOP B

  2. ŁCsendmail ̎q݂Ƃ́Cukill -CONT C
     ҂āCēx kill -STOP vƂƂqԌJԂB

  3. qׂĎ~܂Ckill -TERM Ckill -CONT sendmail~
     ߂B

  (3) qmail  sendmail  wrapper(sendmail ̃C^[tFCXt
  qmail)ŁC݂ sendmail u܂B

       # mv /usr/lib/sendmail /usr/lib/sendmail.bak
       # ln -s /var/qmail/bin/sendmail /usr/lib/sendmail

  (4) /etc/inetd.conf C܂Bȉ̍s /etc/inetd.conf ɏ
  (ׂ͂ 1 sŏ)C comsat ɊւsRgAEg
  ܂B

  ______________________________________________________________________
  smtp stream tcp nowait qmaild /var/qmail/bin/tcp-env tcp-env
  /var/qmail/bin/qmail-smtpd
  ______________________________________________________________________

  (5) }VċN܂B邢 inetd  kill-HUP Cqmail 
  삵Ă邱ƂmFĂ܂܂B

  (6) sendmail Ŗ̂܂ queue ɎcĂ郁[̏s܂
  (̏͏ȗĂ܂܂)Bqmail ̎słĂC
  sendmail.bak -q (邢 sendmail.bak -q15m) sĂ܂܂
  Bqueue ɎcĂ郁[ׂď܂ŁCsĂ
  (邱Ƃ܂)B

       # /usr/lib/sendmail.bak -q

  (7) sendmail  binmail ̎s菜܂(̏͏ȗ
  ܂܂)Bł́Cchmod 0 s邱Ƃɂ܂B

       # chmod 0 /usr/sbin/sendmail /usr/lib/sendmail.bak /usr/lib/sendmail.mx
       # chmod 0 /bin/mail
        ...

  (8) mail C[N邱ƂmF܂(Ӗs)BSVR4 
  ͏ȗĂ܂܂)BSVR4 ł́Cmail  mailx փN
  ΂悢ł傤(Ӗs)B

  1.4.  ڍs̃eXg

  (1) SMTP ̃eXgs܂BSMTP oRŎ}VɃ[oeXg
  s܂B}V ~me/Mailbox Ƀ[͂Ă邱ƂmFĂ
  B

       % telnet 127.0.0.1 25
       Trying 127.0.0.1...
       Connected to 127.0.0.1.
       Escape character is '^]'.
       220 relay.ec.tmit.ac.jp ESMTP
       helo dude
       250-relay.ec.tmit.ac.jp
       250-PIPELINING
       250 8BITMIME
       mail <me@relay.ec.tmit.ac.jp>
       250 ok
       rcpt <me@relay.ec.tmit.ac.jp>
       250 ok
       data
       354 go ahead
       Subject: testing

       This is a test.
       .
       250 ok 812345679 qp 12345
       quit
       221 relay.ec.tmit.ac.jp
       Connection closed by foreign host.
       %

  (2) u}V玩}Ṽ[̃eXgs܂Bق̃}V
  }ṼAJEgփ[oĂ݂ĂB

  (3) u}ṼeXg[̃eXgs܂B

  (4) MUA ̃eXgs܂Bmh-e gāCŏ͎}ṼAJE
  gCɉu}ṼAJEgɃ[oĂB

  (5) u}V玩}V postmaster ւ̃[̃eXgs܂B
  u}V PoStMaStEr@relay.ec.tmit.ac.jp փ[oC
  ~alias/Mailbox Ƀ[͂Ă邱ƂmFĂB

  1.5.  qmail ̊Ǘc[

     /var/qmail/bin/qmail-qread
        queue ̓eXgɂĕ\܂B

  1.6.  qmailanalog ̃CXg[Ɛݒ

  (1) qmailanalog ̃fBNg߂܂BftHg
  /usr/local/bin/qmailanalog łBύXɂ́C conf-bin.h 
  WĂB

  (2) ȉ̃R}hs܂B

       # make
       # make setup
       # ln -s /usr/bin/awk /usr/bin/nawk

  (3) qmail ̃O}CNbPʂł邱ƂmF܂B

       849347513.939860 running
       849347523.531129 new msg 19326
       849347523.532347 info msg 19326: bytes 266 ...

  (4) qmail ̃O qmailanalog/matchup ɏĂ炢܂B

       % awk '{$1=";$2=";$3=";$4=";$5=";print}' < /usr/adm/message \
            | /usr/local/bin/qmailanalog/matchup > out

  (5) matchup ̏o͂ qmailanalog/z* XNvgŏ܂B

       % /usr/local/bin/qmailanalog/zddist < out      # [̒x̓v
       % /usr/local/bin/qmailanalog/zfailures < out   # s[̃`FbN
       % /usr/local/bin/qmailanalog/zrecipients < out # 󂯎̓v
       % /usr/local/bin/qmailanalog/zrxdelay < out    # 󂯎̓v(xŃ\[g)
       % /usr/local/bin/qmailanalog/zsuccesses < out  # ɗR̓v(Ӗ)
       % /usr/local/bin/qmailanalog/zdeferrals < out  # deferral̗R̓v
       % /usr/local/bin/qmailanalog/zoverall < out    # {v
       % /usr/local/bin/qmailanalog/zrhosts < out     # ̃zXg̓v
       % /usr/local/bin/qmailanalog/zsenders < out    # o̓v
       % /usr/local/bin/qmailanalog/zsuids < out      # ouid̓v

  1.7.  qmail  qlist ɂȈ ML ̍쐬

  ȉ̃R}hsC

       % touch .qmail-ifweb .qmail-ifweb-owner

  .qmail-ifweb-request t@CɈȉ̓e݂܂B

  ______________________________________________________________________
  | qlist2 ifweb relay.ec.tmit.ac.jp
  ______________________________________________________________________

  2.  majordomo  distribute

  majordomo  CML( ML) ML Ǘ\tg̈łBdistribute 
  ML Ǘ\tg̈łCŋ߂ł majordomo ̋@\g\tgƂ
  majordomo ƈꏏɎg邱Ƃ悤łBłCmajordomo 
  ML Ǘ\tgƂĈCdistribute ŋ@\gsƂɂ܂B

  2.1.  majordomo ̃CXg[

  (1) majordomo  user id  group id ߂܂Bł́Cuser 
  majordomo(7797) ɁCgroup  daemon(2) ɂ邱Ƃɂ܂B
  /etc/passwd  /etc/group CĂB

  (2) majordomo CXg[fBNg߂܂Bł́C
  /home/mail/majordomo ɃCXg[邱Ƃɂ܂B

  (3) Makefile KvɉďC܂B̗ŏCӏȉɎ
  ܂B

  ______________________________________________________________________
  W_HOME = /home/mail/majordomo
  W_USER = 7797
  W_GROUP = 2
  ______________________________________________________________________

  (4) sample.cf  majordomo.cf  cp C̃t@CKvɉďC
  ܂B̗ŏCӏȉɎ܂B

  ______________________________________________________________________
  $whereami = "relay.ec.tmit.ac.jp";
  $digest_work_dir = "/home/mail/majordomo/spool";
  ______________________________________________________________________

  (5) ȉ̃R}hs܂B

  # make wrapper
  # make install
  # make install-wrapper
  # cd /path/to/majordomo; ./wrapper config-test

  2.2.  distributẽCXg[

  (1) distribute-2.1-pl19.tgz WJCpatch-20.gz 𓖂Ă܂B

  (2) ڂ INSTALL.JP QƂĂBdistribute ̃fBNg
   /home/mail/distribute ɂ܂B

  (3) Kvɉ Mailefile C܂B̗ŏCӏȉ
  ܂B

  ______________________________________________________________________
  DEFAULTCONFIG=\
          -DDEF_DOMAINNAME=\"relay.ec.tmit.ac.jp\" \
          -DDEF_ALIAS_CHAR_OPTION=\"b\" \
          -DDEF_SEQ_PATH=\"/home/mail/distribute\" \
          -DDEF_RECIPIENT_PATH=\"/home/mail/distribute\" \
          -DDEF_MAJORDOMO_RECIPIENT_PATH=\"/home/mail/majordomo/lists\" \
           -DDEF_ARCHIVE_PATH=\"/home/mail/distribute/archive\"
  WHERE=  /home/mail/distribute/bin
  ______________________________________________________________________

  (4) longstr.c C܂B

  ______________________________________________________________________
  #ifdef linux
    #include <bsd/bsd.h>
  #endif
  ______________________________________________________________________

  (5) ȉ̃R}hs܂B

       # mkdir /home/mail/distribute
       # mkdir /home/mail/distribute/bin
       # mkdir /home/mail/distribute/archive
       # make
       # make install
       # chown -R majordomo.daemon /home/mail/distribute
       # chown 4755 /home/mail/distribute/bin/*

  (6) /etc/syslog.conf ݒ肵Csyslogd  kill -HUP ܂B

  ______________________________________________________________________
  local4.info     /usr/adm/distribute.log
  ______________________________________________________________________

  2.3.  majordomo  distribute ̊{ݒ

  (1) majordomo  distribute ̂߂ alias ݒ肵܂Bqmail ł
  Calias ̐ݒ ~alias/.qmail-* t@Cōs܂Bȉɐݒ
  ܂B

  ______________________________________________________________________
  -- ~alias/.qmail-majordomo --
  |condredirect postmaster /usr/bin/egrep -i (܂Ԃ)
    '^(From|Sender|Reply-To):.*(majordomo|listproc|listserv|(܂Ԃ)
    postmaster|postmstr|admin|root|pmdf|mailer|-request)@'
  |/home/mail/majordomo/wrapper majordomo
  -- ~alias/.qmail-majordomo-owner --
  -- ~alias/.qmail-owner-majordomo --
  ----
  ______________________________________________________________________

  (2) ~majordomo.qmail  ~alias/.qmail-majordomo ւ̃N쐬
  B

  2.4.  V ML ̍쐬

  ڂ NEWLIST t@CQƂĂBł́C ML
  practice@relay.ec.tmit.ac.jp Ǝ ML ̃_CWFXg practice-
  digest@relay.ec.tmit.ac.jp 쐬܂B

  (1) V ML ̂߂ alias ݒ肵܂Bȉɐݒ܂B

  ______________________________________________________________________
  -- ~alias/.qmail-owner-practice --
  &koyama@ec.tmit.ac.jp
  -- ~alias/.qmail-practice-approval --
  &koyama@ec.tmit.ac.jp
  -- ~alias/.qmail-practice-request --
  | /home/mail/majordomo/wrapper majordomo -l practice
  -- ~alias/.qmail-practice-digest-request --
  | /home/mail/majordomo/wrapper majordomo -l practice-digest
  -- ~alias/.qmail-practice --
  | /home/mail/distribute/bin/distribute -j -R -B A -P bulk (܂Ԃ)
    -M practice -x practice-outgoing
  -- ~alias/.qmail-practice-outgoing --
  | /home/mail/majordomo/wrapper digest -r -C (܂Ԃ)
    -l practice-digest practice-digest-outgoing
  | /home/mail/distribute/bin/archive -M practice
  ----
  ______________________________________________________________________

  ȉ̃N쐬܂B

       # ln -s ~alias/.qmail-practice ~alias/.qmail-practice-digest
       # ln -s /home/mail/majordomo/lists/practice-digest (܂Ԃ)
         ~alias/.qmail-practice-digest-outgoing
       # ln -s ~alias/.qmail-owner-practice ~alias/.qmail-owner-practice-arhive
       # ln -s ~alias/.qmail-owner-practice ~alias/.qmail-owner-practice-digest
       # ln -s ~alias/.qmail-practice-approval ~alias/.qmail-practice-digest-approval

  (2) V ML ̂߂̐ݒt@CƃfBNg쐬܂Bȉɗ
  ܂Bpractice  practice-digest ͓o^õXgۑ
  t@CCpractice.archive  practice-digest.archive ͌Â[
  fBNgC practice.info  practice-digest.info  ML ̏
  t@Cł(KɏĂ)B

       # cd ~majordomo/lists
       # touch practice practice-digest
       # mkdir practice-digest.archive
       # mkdir /home/mail/distribute/archive/practice
       # ln -s /home/mail/distribute/archive/practice practice.archive
       # touch practice-digest.info practice-digest.info
       # mkdir ~majordomo/spool
       # mkdir ~majordomo/spool/practice-digest
       # chown -R majordomo.daemon ~majordomo/lists
       # chown -R majordomo.daemon ~majordomo/spool
       # chown -R majordomo.daemon /home/mail/distribute/archive/practice

  (3) majordomo@relay.ec.tmit.ac.jp  lists R}hoĂB

       % echo 'lists' | mail majordomo@relay.ec.tmit.ac.jp

  ׂĐsĂ΁Cmajordomo@relay.ec.tmit.ac.jp 
  practice  practice-digest Ƃ ML ݂Ƃe̕Ԏ߂
  Ă܂B

  (4) lists R}hsƁC~majordomo/lists fBNg
  ɁCpractice.config  practice-digest.config Ƃt@C쐬
  ܂B̃t@C ML ̓ݒ肵܂̂ŁCKvɉďCĂ
  B

  (5) _CWFXgML̂߂ɁCcrontab ̐ݒ܂B
  /usr/spool/cron/crontabs/foo Ɉȉ̍s݂܂Bfoo ́C root
  Ŗ΁CNł܂܂Broot ɂƁC ~alias/.qmail-
  majordomo ̐ݒɂ postmaster ւ̃[ƂďĂ܂
  B

  ______________________________________________________________________
  0 0,10,14,18 * * * /home/mail/majordomo/mkdigest >/dev/null 2>&1
  ______________________________________________________________________

  /home/mail/majordomo/mkdigest ̓e͈ȉ̒ʂłB

  ______________________________________________________________________
  (echo To: majordomo@relay.ec.tmit.ac.jp; echo mkdigest practice-digest PASSWORD) | /var/qmail/bin/qmail-inject
  ______________________________________________________________________

   0  10  14  18 Ƀ_CWFXgł쐬Ƃw
  łBŌɁC crontab o^܂B

       # crontab /usr/spool/cron/crontabs/foo -u foo

  ŏIłB

  2.5.  distribute  sequencer ւ̈ڍs

  (1) ȉ̃R}hs܂B

       # cd ~majordomo
       # cp Tools/sequencer .
       # chown majordomo.daemon sequencer
       # cd lists
       # echo "1" > practice.seq
       # touch practice.aliases
       # chown majordomo.daemon practice.seq practice.aliases
       # cd ~alias
       # ln -s /home/mail/majordomo/lists/practice .qmail-practice-outgoing-list

  (2) ~alias/.qmail-* C܂B

  ______________________________________________________________________
  -- ~alias/.qmail-practice --
  | /home/mail/majordomo/wrapper sequencer -l practice -N (܂Ԃ)
    -h relay.ec.tmit.ac.jp practice-outgoing
  -- ~alias/.qmail-practice-outgoing --
  &practice-outgoing-list
  | /home/mail/majordomo/wrapper digest -r -C (܂Ԃ)
    -l practice-digest practice-digest-outgoing
  ----
  ______________________________________________________________________

  (3) ~majordomo/lists/practice.config C܂BCӏ͈ȉ̒
  łB

  ______________________________________________________________________
  # listsR}hŁCML\ɂB
  noadvertise       <<  END
  /.*/
  END

  # [wb_[receiveds폜B
  purge_received    =   yes

  # Reply-To:sݒ肷B
  reply_to          = practice

  # e҂𐧌(et@Cw)B
  restrict_post     = practice:practice-digest:practice.aliases

  # Subjects̕ύXwB
  subject_prefix    = [Practice $SEQNUM]
  ______________________________________________________________________

  (4) Kvł΁C~majordomo/lists/practice.aliases ɁCe
  [AhXo^܂B

  (5) ~majordomo/majordomo.cf C܂BȉɏCӏ܂B
   Majordomo  index R}h̕ύXłB

  ______________________________________________________________________
  $index_command = "sed -e 's/.* [[]/[/g' INDEX | /bin/nkf -m";
  ______________________________________________________________________

  (6) ~majordomo/sequencer C܂Bȉ diff ܂B
  ́CSubject s [Practice *] d̂C邽߂̕ύXłB

  ______________________________________________________________________
  *** Tools/sequencer     Tue Mar 18 11:54:02 1997
  --- sequencer   Wed Mar 19 23:41:09 1997
  ***************
  *** 153,158 ****
  --- 153,168 ----
        &abort("sequencer: Can't open /tmp/sequencer.$$.in: $!");

    while (<STDIN>) {
  +       # modified by nob@makioka.y-min.or.jp 961130
  +       #       to delete [****] or (****) from Subject:
  +       # update by hiro@dp.fcs.ts.fujitsu.co.jp 970202
  +       #       to delete Re: [****] or Re: (****)
  +       #                 RE: [****] or RE: (****) from Subject:
  +       if (/^Subject:/) {
  +               s/R[eE].*\: [\(\[].*[\]\)]/Re\:/g;
  +               s/R[eE].*\:.*R[eE].*\:/Re\:/g;
  +       }
  +       #
        print IN $_;
    }

  ***************
  *** 196,202 ****
                                  }
                          }
                          $subject = $foo . "Message for " . $opt_l;
  !                       print OUT $subject, "\n";
                  }

                  print OUT "Sender: $sender\n";
  --- 206,214 ----
                                  }
                          }
                          $subject = $foo . "Message for " . $opt_l;
  !                       # modified by hiro@dp.fcs.ts.fujitsu.co.jp 970202
  !                       # no Subject Mail addon Subject:
  !                       print OUT "Subject: $subject\n";
                  }

                  print OUT "Sender: $sender\n";
  ______________________________________________________________________

