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 の使い方