Postfix + fmlでメーリングリスト

2007年 7月 22日(日曜日) 20:41 CrapeMyrtle Tips - Linux
印刷

Postfixとfmlを使ってメーリングリストを管理するためのメモ.


fmlのインストール

まずはfmlのユーザを作る.

rootになって以下のコマンドを実行してfmlグループを作った後,fmlユーザを作成.fmlユーザにはホームディレクトリとログインシェルを使えないような設定にしてあるけど気にならないのであればここまでする必要はないかも.

また必要なディレクトリも作っておいて所有権の設定をしておく.

$ su
# groupadd fml
# useradd -g fml -s /bin/false -d /dev/null fml
# mkdir /usr/local/fml
# chmod 755 /usr/local/fml
# chown fml:fml /usr/local/fml
# mkdir /var/spool/ml
# chmod 755 /var/spool/ml
# chown fml:fml /var/spool/ml

fml.orgからfml本体をダウンロードした後展開,インストールまで一気に.

# sudo -u fml wget ftp://ftp.fml.org/pub/fml/stable/fml-4.0-stable-20040215.tar.gz
# sudo -u fml tar zxfv fml-4.0-stable-20040215.tar.gz
# cd fml-4.0-stable-20040215
# sudo -u fml perl makefml install

上のコマンドを実行すると色々聞いてくるため質問に答えていく.DOMAIN NAMEとFQDN(完全修飾ドメイン名?)は環境により適当に.

unshift(@INC, /home/hogehoge/download/mail/fml/fml-4.0-stable-20040215/src)
---NOT USING configuration file (for the first time)
THIS HOST (mail.example.com) IS [i686-pc-linux-gnu]
---Please Define Your Fml System Configurations
Personal Use or ML-Admin-Group-Shared or fmlserv you use?
Personal, Group, Fmlserv (personal/group/fmlserv) [personal]
DOMAIN NAME [example.com]
FQDN [mail.example.com]
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]
--- summary ---
DOMAIN: example.com
FQDN: mail.example.com
EXEC_DIR: /usr/local/fml
ML_DIR: /var/spool/ml
Language: Japanese
TimeZone: +0900
The current configuration is saved in /usr/local/fml/.fml/system
---Install the Fml system to /usr/local/fml. (y/n) [n] y

-- Enjoy Internetworking!と表示されたらfmlのインストールは成功.


Postfixの設定

次にPostfixの設定を行う.

rootのままPostfixの設定ファイル/etc/postfix/main.cfの末尾に以下を追加.

allow_mail_to_commands = alias,forward,include

また,/etc/postfix/main.cfmynetworksの設定に,127.0.0.1/8を記述しないとfmlからのメールの発信が出来なくなるみたい(自分の場合は始めから設定してあった).

Postfixの再起動.

# postfix reload


メーリングリストの作成

以上でインストールは終了したので,実際にtest-mlというメーリングリストを作ってみる.

# sudo -u fml /usr/local/fml/makefml newml test-ml

メーリングリスト作成が成功したら/etc/aliasesに, /var/spool/ml/test-ml/aliasesの中身を追記する (cat /var/spool/ml/test-ml/aliases >> /etc/aliasesでもいいんだけど恐いので).

test-ml: :include:/var/spool/ml/test-ml/include
test-ml-ctl: :include:/var/spool/ml/test-ml/include-ctl
test-ml-request: test-ml-admin
test-ml-admin: fml
owner-test-ml: fml
owner-test-ml-ctl: fml
# Mail Error Analyzer Daemon
# If you use mead.pl, comment out test-ml-admin: line and UNCOMMNET OUT here.
#test-ml-admin: fml, :include:/var/spool/ml/test-ml/include-mead

aliasesの変更を有効にする.

# newaliases


メーリングリストの設定

test-mlを以下のような設定にしてみる.

主な設定はmakefmlから設定できるのでそれを使用する(以後設定メニューと呼ぶ).

# sudo -u fml /usr/local/fml/makefml config test-ml
DO "config" for test-ml mailing list.
---Configure test-ml mailing list ...
************************************************************
<<< makefml --- FML Configuration Interface --- >>>
=== TOP MENU ===
Mailing List Addresses
FOR POST このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください
FOR COMMAND このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください
_______________________
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 このメールアドレスは、スパムロボットから保護されています。アドレスを確認するにはJavaScriptを有効にしてください
4 REMOTE ADMINISTRATION
PERMIT ? NO
AUTH_TYPE crypt
5 HEADER CONFIGURATIONS
6 OPTION
7 SECURITY & FILTERING
************************************************************
Which section? (0-7) [0]

メンバー以外でも投稿できる

設定メニューから以下に沿って実行する.

  1. 1の"POLICY OF ACCESS (WHO CAN POST AND USE COMMANDS)"を選択
  2. 1の"PERMIT_POST_FROM"を選択
  3. 2の"anyone"を選択
  4. 0を3回選択して設定を終了

Subjectに[test-ml:123456]のように6桁の番号を付ける

設定メニューから以下に沿って実行する.

  1. 5の"HEADER CONFIGURATIONS"を選択
  2. 1の"SUBJECT_TAG_TYPE"を選択
  3. 3の"Subject: [Elena:00100]"を選択
  4. 0を選択して戻る
  5. 2の"SUBJECT_TAG_FIGURE"を選択
  6. 1の"6 e.g. [elena 000100]"を選択
  7. 0を3回選択して設定を終了

メンバー以外からの投稿の際,Reply-toにFromのメールアドレスを追加する

/var/spool/ml/test-ml/cfを直接変更して,末尾に以下を追記する.

$START_HOOK =q%
if (&MailListMemberP($From_address)) {
&DEFINE_FIELD_FORCED("reply-to", $MAIL_LIST);
}
else {
&DEFINE_FIELD_FORCED("reply-to", "$From_address, $MAIL_LIST");
}
%;

その後,以下のコマンドを実行して変更を反映させる.

# sudo -u fml /usr/local/fml/makefml update-config test-ml


メーリングリストの操作

メンバー追加
# sudo -u fml /usr/local/fml/makefml add test-ml address
メンバー削除
# sudo -u fml /usr/local/fml/makefml bye test-ml address
メンバーのアドレス変更
# sudo -u fml /usr/local/fml/makefml chaddr test-ml old new

その他詳しい事はmakefml helpを実行すればコマンド一覧が表示される.

最終更新 2010年 3月 19日(金曜日) 02:56