Sun Qube3J に fml をインストールする

Create:2003/01/03, update:2004/05/14

 

fmlとは

メーリングリストを構築するソフトウエアです。市販されている製品もありますが、こちらはフリーソフトで使い勝手もよく、また本も(fmlバイブル)紹介されていますのでお奨めできます。

本家(公式サイト)
fml メーリングリスト管理

前提条件

・最新のfml 4.0.3(2003/01/03版)は、sendmailとの相性が悪くメールがloopしてしまう現象となってしまいます。
・かなりがんばったのですが、原因を解決できないため 1つ前のリリースバージョン 4.0.2 を使用しました。
・sendmail は、8.10.2 を使用しました。

インストール方法

fmlのインストールには、fmlユーザを作成しておいた方があとあと便利でしょう。

fmlユーザを作成しメール管理ディレクトリ等を作成します。

% su
# groupadd fml
# useradd -g fml fml
# passwd fml

fmlでのメール管理ディレクトリを作成します。
# mkdir -p /usr/local/fml /var/spool/ml
# chown -R fml:fml /usr/local/fml /var/spool/ml

fml をインストールします。

# cd ./src
# wget ftp://ftp.fml.org/pub/fml/release/old/fml-4.0.2.tar.gz
# gzip -cd fml-4.0.2.tar.gz | tar xf -
# cd fml-4.0.2
# perl makefml install

ドキュメントをインストールしたくない場合は
# env MKDOC=no perl makefml install

  Personal Use or ML-Admin-Group-Shared or fmlserv you use? 
  Personal, Group, Fmlserv (personal/group/fmlserv) [personal ]

  DOMAIN NAME [fml.org]  ←自分のドメイン名を入力
  FQDN [beth.fml.org]  ←自分の完全名(mx.****) かな
  EXEC FILES DIRECTORY [/usr/local/fml]  ←インストール先
  TOP LEVEL ML DIRECTORY [/var/spool/ml]  ←スプールディレクトリ

  Language (Japanese or English) [Japanese]  ←(^o^)丿

  TimeZone (TZ: e.g. +0900, -0300) [+0900]   ←ま。このまんまでしょ 

sendmail 8.10 以降から、newaliasesコマンド実行には制限が掛かっているので root以外には実行することができません。そのためfmlユーザで実行できるようにするためには、/etc/mail/sendmail.cf のどこか(最後の行でいいでしょう)に以下の文を追加する必要があります。

# vi /etc/mail/sendmail.cf
 T fml  ← この行を追加

sendmail 8.10 あたりから、smrsh(SendMail Restricted SHell)というラッパプログラムを使用するため、fml を実行しようとすると怒られます。(涙)

それを回避するため、smrsh で使える様にお呪いをします。(rootユーザで)

1) /var/spool/ml/etc/fml/site_init.ph を作成する。
    # cd /var/spool/ml/etc/fml
    # vi site_init.ph
    # chown fml:fml site_init.ph
    # chmod 755 site_init.ph

    内容(site_init.ph)
      push(@INC, "/usr/local/fml");
      1; 

2) シンボリックリンクを張る
    # ln -s /usr/local/fml/fml.pl /usr/adm/sm.bin
    # ln -s /usr/local/fml/libloadconfig.pl /usr/adm/sm.bin
    # ln -s /var/spool/ml/etc/fml/site_init.ph /usr/adm/sm.bin
    # ln -s /usr/local/fml/default_config.ph /usr/adm/sm.bin

とりあえずインストールは、これで完了♪

メーリングリストの作成方法

まず勉強用のメーリングリスト elena を作成してみましょう。一回作ってしまえば、あとは同じように作るだけなのでチャレンジ!ごー!!(ふる)

もちろん fmlユーザになって以下のコマンドを実行してくださいね。

elena メーリングリストを作成する。

% /usr/local/fml/makefml newml elena

すると。/var/spool/ml/elena というディレクトリが作成されます。

/etc/mail/aliases に メーリングリストアドレスを追加し、fmlによるメーリングリストの配送を実行可能にする。

% su
# cat /var/spool/ml/elena/aliases /etc/mail/aliases
# newaliases
 ↑ fml ユーザでも実行可能

とりあえず elenaメーリングリストの配送ができるかテストするために、メーリングリストのメンバリストを以下のファイルに記述する。(初めはファイルが作成されてないので作成する)

% cd /var/spool/ml/elena/aliases
% vi actives members

メーラーから elena@sea-bird.org っていうアドレス送ってみて。送った内容が配信されてくれば fml の設定は問題ないってことで ok。

私が遭遇したトラブル

smrsh によるエラーとか結構OSや環境によって問題がおこるようです。ちなみに私が遭遇して悩んだのは以下のとおり。

・elena ディレクトリまで不適切なグループの属性が存在する場合、メール配信がエラーとなる。
 → /var/spool/ml/elena までの属性を確認する。
 → ディレクトリ属性を確認する。できれば chmod 755 がベストっす。
・smrsh によるエラーは、/var/log/maillog や fmlユーザに通知されているのでそれを見る。
・aliases ファイルの追加は、/etc/aliases /etc/mail/aliases どちらかであった。

各種メーリングリストによる設定

config.ph を編集することにより投稿するメンバや、配信条件、htmlファイルを制御したり、添付ファイルを禁止したりすることができます。

私の設定は・・・

本運用の前にカウンターやログをリセット
% cd /var/spool/ml/ML名
% rm -rf seq summary log spool htdocs

とか最近のウイルス君は、htmlメールで送ってくるから

cf に定義後、/usr/local/fml/makefml update-config elena

 USE_DISTRIBUTE_FILTER           1

 LOCAL_CONFIG

 &DEFINE_FIELD_PAT_TO_REJECT('Content-Type', 'multipart\/mixed/i');
 &DEFINE_FIELD_PAT_TO_REJECT('Content-Type', 'multipart\/alternative/i');

あとは、こんなところを参考にしながらウイルス対策したりして

電子メールによるウイルスを“水際”で食い止める
virus_check.ph の使い方
[..戻る..]