メーリングリストを作る(fml)


fml

fml は Mailing List (以下 ML) Server package です。perl を使って書かれ ています。FML は配送プログラムや多くのコマンド用のサーバ(ユーザー用や MLをリモートで管理するためのもの)などからなります。また対話設定プログ ラムやコマンドサーバのインターフェイスを listserv / majordomo スタイル にするエミュレータなどの多くの補助プログラムなどもついています。
fmlの情報源として、以下のURLがあります。
http://www.fml.org
http://www.sapporo.iij.ad.jp/staff/fukachan/fml/index.html

fmlのインストール

実際にインストールを行う前に、以下のようなことをあらかじめ決定しておきます。 また、必要に応じてML専用のアカウントを作成しておきます。 ここでは以下のようなアカウントを作成します。
ユーザ名             fml (ユーザIDは任意)
所属グループ         fml (グループIDは任意)
ホームディレクトリ   /usr/local/fml
root で vipw を実行し、ユーザ fml を登録します。
また、/etc/group を編集し、グループ fml を登録します。fmlグループに 所属するユーザには、MLの所有者を記述します。

次に、実際にインストールを行います。 ここでは、fml を FreeBSD2.2.8-Release が動作している計算機にインストール します。以下のURL
ftp://ftp.iij.ad.jp/pub/IIJ/dist/fukachan/fml/
より、最新の fml を入手します。今回は、fml-3.0.1.tar.gz を入手しました。 入手後、適当なディレクトリで解凍・展開し、ディレクトリを移動します。
% tar xvfz fml-3.0.1.tar.gz
% cd fml-3.0.1
次に、インストーラ makefml を走らせます。以下のコマンドを root で実行します。
# perl makefml install
この時に、以下のような項目について質問されます。
Personal Use or ML-Admin-Group-Shared or fmlserv you use? 
Personal, Group, Fmlserv (personal/group/fmlserv) [personal] 

DOMAIN NAME               [oak] oak.eg.t.kanazawa-u.ac.jp
FQDN                      [oak] oak.eg.t.kanazawa-u.ac.jp
EXEC FILES DIRECTORY      [/usr/local/fml] 
TOP LEVEL ML DIRECTORY    [/var/spool/ml] 

Language (Japanese or English) [English] Japanese

TimeZone (TZ: e.g. +0900, -0300) [+0900]
以下に各項目の説明を記述します。
DOMAIN NAME
ドメイン名です。メーリングリストアドレスの @ から後ろで使う部分です。 もし、アドレスにマシン名まで含めたものを使う場合は、FQDN を指定します。 virtual domain の場合も、ここで virtual domain を指定します。
FQDN
FQDN(Full Qualified Domain Name)を指定します。ホストのインターネット上での 完全名です。
EXEC FILES DIRECTORY
fmlをインストールするディレクトリを指定します。
TOP LEVEL ML DIRECTORY
MLを作成するディレクトリを指定します。
Language
ML用に作成されるドキュメントの言語を指定します。"Japanese"か" EnglishD" が 選択できます。
TimeZone
Time Zone を指定します。日本は [+0900] です。
以上の質問に答えれば、fmlがインストールされます。設定した情報は、fmlを /usr/local/fml にインストールした場合、/usr/local/fml/.fml/ 以下に 保存されます。

次に、fmlをインストールしたディレクトリと、MLを作成するディレクトリの 所有者とグループを変更しておきます。
# chown -R fml.fml /usr/local/fml
# chown -R fml.fml /var/spool/ml
以上で fml のインストールは終了です。

MLの作成

基本的な設定の変更やメンバーの登録・削除などはコマンドで実行できます。 コマンドは ML の所有者で実行します。
MLを作成するには、makefml コマンドを使用します。例えば、Funalab ML を 作成する場合は、以下のようにします。
% /usr/local/fml/makefml newml funalab
これより、ML のディレクトリ /var/spool/ml 以下に funalab ディレクトリが 作成され、その下に以下のようなファイルが作成されます。
aliases         /etc/aliases に記述するサンプル
include         投稿するアドレスのための include file
include-ctl     コマンド用のアドレスのための include file
cf              config.ph の元
config.ph       メーリングリストの設定ファイル
guide           ガイド
help            MLやコマンドの使い方
help-admin      リモート管理のためのコマンド一覧
objective       MLの目的について
welcome         自動登録時に使う「ようこそ…」の文面
confirm         自動登録で使う文面
crontab         vixie cron 用の定義ファイルのサンプル
deny           メンバー以外からの投稿に拒否の旨を伝える文面
fml.c           C Wrapper
config.ht      fml.c のヘッダファイル
次に、使用している MTA(Mail Transfer Agent)に応じて、MLの設定を行います。 $DIR/fml-3.0.1/doc/ 以下にある以下のドキュメントを参考にします。
INSTALL_with_SENDMAIL.jp
INSTALL_with_QMAIL.jp
INSTALL_with_EXIM.jp
INSTALL_with_POSTFIX.jp
INSTALL_with_ZMAILER.jp
以下に、MTAとして sendmail と qmail を使用している場合について、設定内容を 記述します。 他の MTA を使用している場合は、それに応じてドキュメントを読んで設定します。 以上で ML の作成は終了です。

MLの削除

MLを削除したい場合は、以下のようにして MLのディレクトリを削除します。
% rm -rf /var/spool/ml/MLの名前
その後、sendmail の場合は、/etc/aliases から該当するMLの部分を削除して newaliases を実行します。
qmail の場合は、管理ユーザの ~/.qmail-* のMLに該当するファイルを削除します。

ユーザ登録・削除

MLへのユーザの登録・削除は、以下のようにして行います。
ユーザ登録
% /usr/local/fml/makefml adduser funalab sakai@oak.eg.t.kanazawa-u.ac.jp
% /usr/local/fml/makefml add funalab sakai@oak.eg.t.kanazawa-u.ac.jp
ユーザ削除
% /usr/local/fml/makefml byeuser funalab sakai@oak.eg.t.kanazawa-u.ac.jp
% /usr/local/fml/makefml bye funalab sakai@oak.eg.t.kanazawa-u.ac.jp

MLの設定

makefml を使用することにより、メニュー形式で基本的なMLの設定変更ができます。
% /usr/local/fml/makefml config ML名
以下のようなメニューが表示されます。設定を終了したら、 /var/spool/ml/MLの名前/ ディレクトリ以下にある cf と config.ph が 再生成されます。
   === TOP MENU ===

   Mailing List Addresses
        FOR POST          funa@oak.eg.t.kanazawa-u.ac.jp
        FOR COMMAND       funa-ctl@oak.eg.t.kanazawa-u.ac.jp
   _______________________

   0    END
   1    POLICY OF ACCESS (WHO CAN POST AND USE COMMANDS)

        [POST]
          PERMIT_POST_FROM                 members_only
          WHEN POST FROM NOT MEMBER        reject

        [COMMAND]                          
          PERMIT_COMMAND_FROM              members_only
          WHEN COMMAND FROM NOT MEMBER     reject

   2    REGISTRATION METHOD TYPE

        AUTO_REGISTRATION_TYPE             confirmation
        UNSUBSCRIBE_AUTH_TYPE              

   3    SETTINGS AROUND COMMANDS
              address for command          funa-ctl@oak.eg.t.kanazawa-u.ac.jp

   4    REMOTE ADMINISTRATION              
                     PERMIT ?              NO
                     AUTH_TYPE             crypt

   5    HEADER CONFIGURATIONS

   6    OPTION                             

   7    SECURITY & FILTERING                
   ************************************************************

   Which section? (0-7) [0]
  1. POLICY OF ACCESS (WHO CAN POST AND USE COMMANDS)
    投稿(POST)とコマンド(COMMAND)のそれぞれについて、以下の項目が設定できます。
    • PERMIT_POST_FROM (誰からの投稿を許すか?)
      だれでもOK anyone
      登録されているメンバーだけ members_only
      モデレータだけ moderator
    • WHEN POST FROM NOT MEMBER (登録メンバー以外からメールがあった場合、どうするか? )
      拒否 reject
      自動登録 auto_subscribe
      無視(管理者にだけ報告する) ignore

  2. REGISTRATION METHOD TYPE
    上述の WHEN POST FROM NOT MEMBER で auto_subscribe を選んだ場合に、 自動登録の方法を設定します。
    • AUTO_REGISTRATION_TYPE (自動登録の方法)
      confirmation subscribe request に対し、一度は確認を求めるメールを送り、確認をもらってから登録します。
      body 本文に subscribe と書いてあるメールなら登録します。
      subject Subject: に subscribe と書いてあるメールなら登録します。
      no-keyword メンバーでないなら登録します。
    • UNSUBSCRIBE_AUTH_TYPE
      MLを抜ける(unsubscribe)する時にでも、confirmation をかけるかを設定します。 デフォルトは NO です。
    • CHADDR_AUTH_TYPE
      chaddr コマンドでも、confirmation をかけるかを設定します。 デフォルトは NO です。

  3. SETTINGS AROUND COMMANDS
    コマンドとして使用するアドレスの設定を行います。
    • CONTROL_ADDRESS
      funalab-ctl@DOMAINNAME デフォルトの設定です。コマンド専用のアドレスを別に指定します。
      funalab@DOMAINNAME 投稿用とコマンド用のアドレスを同じにします。この場合は、# command という形式のコマンドを送ると、サーバはコマンドとして解釈します。
      fmlserv@DOMAINNAME fmlserv(listserv style のコマンド用サーバ)の設定をしている場合に 指定します。
      NOT USE MLでコマンドを使わない、つまり配送専用の場合に指定します。
    • MAIL_LIST_ACCEPT_COMMAND
      投稿用とコマンド用の両方のアドレスがあり、なおかつ投稿用のアドレスでも # command という形式でコマンドを受けるようにする場合は YES に設定します。

  4. REMOTE ADMINISTRATION
    リモート管理について設定します。セキュリティ上、デフォルトではリモート管理は できないようになっています。
    • REMOTE ADMINISTRATION
      リモート管理をできるようにするには YES を設定します。デフォルトは NO です。
    • REMOTE_ADMINISTRATION_AUTH_TYPE
      認証タイプを設定します。以下の項目より選択します。デフォルトは crypt です。
      pgp PGPベースの認証方式
      crypt パスワード認証(パスワードを crypt で暗号化して保存) From: のアドレスが管理者メンバーリストにある。
      md5 パスワード認証(パスワードを MD5 で暗号化して保存)。 From: のアドレスが管理者メンバーリストにある。
      address From: のアドレスが管理者メンバーリストにある。
    • ADMIN_ADD_SEND_WELCOME_FILE
      admin add でユーザを登録した時に、そのユーザに WELCOME メッセージを 送るかどうかを設定します。デフォルトは NO です。

  5. HEADER CONFIGURATIONS ヘッダ関連(To: や Subject: など)の設定を行います。
    • SUBJECT_TAG_TYPE
      Subject: の形式について指定します。以下の項目から選択します。
      Subject: NO TAG (Default, Fml recommends)
      Subject: (Elena:00100)
      Subject: [Elena:00100]    (hml 1.6 compat)
      Subject: (Elena 00100)
      Subject: [Elena 00100]
      Subject: (Elena,00100)
      Subject: [Elena,00100]
      Subject: (Elena)
      Subject: [Elena]
      Subject: (00100)
      Subject: [00100]
      
    • SUBJECT_TAG_FIGURE
      例えば、Subject: [Elena:00100] の場合、 00100 の部分の桁数を指定します。
    • REWRITE_TO
      To: の形式について設定します。以下の項目から選択します。
      To: funalab@DOMAINNAME, NON-MAIL-LIST-ADDRESS To: $MAIL_LIST の形で始まっていない時は、 「$MAIL_LIST, それ以外のアドレス」に書き換える
      To: funalab@DOMAINNAME 常に To: $MAIL_LIST の形式にする
      pass through the original To: original の To: のままにする
    • DATE_TYPE
      Date: の形式を指定します。以下の項目から指定できます。
      Original Date:
      Date: (when distributed) and Posted: Original Date
      Date: (when distributed) and X-Posted: Original Date
      Date: (when distributed) and X-Original-Date: Original Date
      Date: (when received) and Posted: Original Date
      Date: (when received) and X-Posted: Original Date
      Date: (when received) and X-Original-Date: Original Date
      
    • PASS_ALL_FIELDS
      ヘッダの中身を全部通すなら YES にします。デフォルトは YES です。 ただし、$SKIP_FIELDS(Received: と Return-Receipt-To:)のフィールドは 削られます。
    • PASS_RECEIVED_THROUGH
      Received: を通すなら YES にします。デフォルトは YES です。

  6. OPTION
    • HTML_GENERATION
      MIME変換した記事を作るなら AUTO_HTML_GEN を YES にします。その場合は、 MLの記事をHTMLに変換して /var/spool/ml/ML名/htdocs 以下に html化された 階層を作ります。
    • SPOOLING
      スプールに記事を貯めるかどうかを指定します。デフォルトは YES です。
    • FLOCK
      lock algorithm に flock を使うか、別のアルゴリズムを指定します。 デフォルトは YES です。
    • SMTP
      • USE_OUTGOING_ADDRESS
      • USE_VERP
    • USE_MEMBER_NAME
    • LANGUAGE
      MESSAGE_LANGUAGE エラーなどを何語で返すかを指定します。デフォルトはインストール時に選択 した言語と同じです。
  7. SECURITY & FILTERING
    • MORE_SECURE
      様々なセキュリティオプションを一気に設定します。make secure を走らせる ことと一緒です。
    • USE_DISTRIBUTE_FILTER
      本文がないメールやコマンドメールをMLに流さないようにフィルタを かけるかどうかを設定します。デフォルトは NO です。
    • FILTER_ATTRRIBUTE
      • FILTER_ATTR_REJECT_COMMAND
        投稿用のMLに #help などのコマンドがきたら拒否(YESの場合)します。 デフォルトは NO です。
      • FILTER_ATTR_REJECT_2BYTES_COMMAND
        unsubscribe とかだけのメールを弾くかどうかを指定します。 デフォルトは NO です。
      • FILTER_NOTIFY_REJECTION
        拒否した旨をその送り主に伝えるかどうかを指定します。 デフォルトは NO です。
      • FILTER_ATTR_REJECT_MS_GUID
        M$関係マクロ入りに見えるファイルを弾くかどうかを指定します。 デフォルトは NO です。
    • CHECK_MAILBODY_CKSUM
    • USE_MTI
      トラフィックモニタを使うなら YES にします。MLのトラフィックを監視し、 一気にメールが来たらメール爆弾とみなします。
    • MAX_MAIL_SIZE
      メールサイズの最大値(デフォルトは無制限、未定義)を指定します。
    • NOTIFY_MAIL_SIZE_OVERFLOW
      MAX_MAIL_SIZE(最大値)を越えるメールが来たら、拒否の旨を送り主に 伝えるかどうかを設定します。デフォルトは YES です。
    • ANNOUNCE_MAIL_SIZE_OVERFLOW
      拒否した旨をメーリングリストに流すかどうかを設定します。 デフォルトは NO です。
    • ADDR_CHECK_MAX
      アドレスのチェックの厳しさを指定します。デフォルトは 3 です。 3 はドメイン3レベルを表しています。つまり、ドメインの3階層 (例えば beth.fml.org)までをチェックします。
    • MAXNUM_COMMAND_INPUT
      1つのメールに書けるコマンド数の最大値を指定します。デフォルトは無制限です。
    • REJECT_ADDR
      無視するシステムアカウント名のリストを記述します。
    • USE_LOG_MAIL
    • USE_ENCRYPTED_DISTRIBUTION

戻る

sakai@oak.eg.t.kanazawa-u.ac.jp
Last modified: Tue Jun 20 20:41:50 JST 2000