メーリングリストを作ろう
メーリングリストは基本的に苦手だったので、ニュースグループを利用していました。しかし、小規模や転送機能などを考えるとメーリングリストもいいかな?と思うようになり、きっかけがあったので作ってみました。
- 利用したプログラム類
- OS VineLinux3.1(6.2でもOK)
メールソフト Postfix 2.1.5(postfix-2.8.10-1vl6.i686でもOK)
メーリングリスト fml-4.0_stable_20030419-0vl1(fml-4.0_stable_20040215-2vl5.i386でもOK)
|
設定(Postfixの設定はできているとします)
- apt-get install fml を実行する。
[root@hoge root]# apt-get install fml
パッケージリストを読みこんでいます... 完了
依存情報ツリーを作成しています... 完了
以下のパッケージが新たにインストールされます:
fml
アップグレード: 0 個, 新規インストール: 1 個, 削除: 0 個, 保留: 0 個
2938kB のアーカイブを取得する必要があります。
展開後に 10.1MB のディスク容量が追加消費されます。
取得:1 http://ring.asahi-net.or.jp 3.1/i386/plus fml 4.0_stable_20030419-0vl1 [2938kB]
2938kB を 7m4s 秒で取得しました (6921B/s)
変更を適用しています...
Preparing... ########################################### [100%]
1:fml ########################################### [100%]
!!!!!!! CAUTION !!!!!!!
Be sure to read /home/fml/README-vine.
And the /home/fml/.fml/system is set as follows:
FQDN=dns.hoge.nu
HOSTNAME=hoge.nu
Please confirm the parameters and edit if you need.
完了
- postfix の main.cfを設定する。
# vi /etc/postfix/main.cf
default_privs = nobody これを default_privs = fml に変更
allow_mail_to_commands = alias,forward,include を追加
mynetworks に 127.0.0.0/8, が無い場合は追記
postfix reload で設定内容をサーバに読み込ませる。
- メーリングリストを設定する。
# su - fml
-bash-2.05b$ ./makefml newml (メーリングリスト名:(例)fml-test)
- aliases を設定する。
/var/spool/ml/fml-test/aliases の 値をaliasに追加する
#su - root
#cat /var/spool/ml/fml-test/aliases >> /etc/aliases
- aliases を変更する。
fml-test: :include:/var/spool/ml/fml-test/include
fml-test-ctl: :include:/var/spool/ml/fml-test/include-ctl
を
fml-test: "|/home/fml/fml.pl /var/spool/ml/fml-test " <-必ず最後に1スペースを入れてから「"」で閉じる事
fml-test-ctl: "|/home/fml/fml.pl /var/spool/ml/fml-test --ctladdr"
- aliasesを認識させる
# newaliases
- ユーザを追加する
#su - fml
-bash-2.05b$ ./makefml addadmin fml-test-admin 管理者アドレス
-bash-2.05b$ ./makefml add fml-test-user ユーザアドレス
- ユーザを削除する
#su - fml
-bash-2.05b$ ./makefml bye fml-test-user ユーザアドレス
- メーリングリストを削除する
#su - fml
-bash-2.05b$ ./makefml destructml fml-test
※おまけ その1
makefml を日本語にする方法
#su - fml
-bash-2.05b$ vi .bash_profile
---- vi .bash_profile の編集内容 ----
MAKEFML_LANG=euc; export MAKEFML_LANG
---- EOF ----
後は、一度ログアウトして再びfmlユーザにて ./makefml config hogehoge とすれば日本語メニューです
※おまけ その2
メールの本文に送信者のメールアドレスと件名を記載する方法
#vi /var/spool/ml/***/config.ph
------ config.ph --------
# $TRAILER_MAILBODY = ""; <- 1149行目あたり
----- 以下を追加 ----
### メールの操作
$DISTRIBUTE_START_HOOK = q%
# Fromにメーリングリスト名を強制登録
$Envelope{'fh:from:'} = $MAIL_LIST;
# Relay-toを送信者に。
if (&GET_HEADER_FIELD_VALUE('reply-to')) {
&DEFINE_FIELD_FORCED("reply-to", &GET_HEADER_FIELD_VALUE('reply-to'));
} else {
&DEFINE_FIELD_FORCED("reply-to", $From_address);
}
#送信者のアドレスを本文の先頭に。
require "libMIME.pl";
require "jcode.pl";
$DecodeSubject = &DecodeMimeStrings( $Envelope{'h:Subject:'} );
$Envelope{'Body'} = "From: " . $From_address ."\n" . "Subject= " . $DecodeSubject . "\n\n". $Envelope{'Body'};
%;
------ EOF -------
config.phに下記の内容を追記してもReply-toに送信者は出ます。
でも、Reply-toの表示も無くちょっと明示的ではないので、私は
上記のやり方が好きです。
http://d.hatena.ne.jp/y_fudi/20091108/1257611240から引用しています。
----
# $FORCE_COMMAND_REPLY_TO = $From_address;
$Envelope{'oh:reply-to:'}=1;
http://yuu.nkjm.info/diary/20110731.htmlから引用しています。
----
※おまけ その3
メールの件名を操作してみます。
メーリングリストの名称とメール数をコロン「:」で表示する。
638行目あたり
$SUBJECT_TAG_TYPE = "[:]";
メール数の桁数を変更する
657行目あたり
$SUBJECT_FORM_LONG_ID = 4;
2005/05/07 記述
2005/06/29 ユーザ追加/削除の部分を記述
2005/07/31 makefmlを日本語化にする方法(おまけ1)を記述
2005/08/07 メーリングリスト削除を追加
2009/01/21 メールボディに送信者・件名を追記する方法(おまけ2)を記述
2014/04/14 Reply-toを表示する為に(おまけ2)に追記
Let's PC の Topに戻る
ホームページのTopに戻る