従来は直接aliasを書き換えていたが、ML管理作業の負担を軽減するために Mailman を導入してみた。 インストール †aptで入れるだけだが、Mailman は元々 EUC-JP の環境で開発されていたので、コンソールの日本語文字コードが UTF-8 だとインストール時の設定がうまく設定されない。 $ export LANG=C $ sudo apt-get install mailman Reading package lists... Done Building dependency tree Reading state information... Done The following extra packages will be installed: pwgen Suggested packages: spamassassin lynx listadmin The following NEW packages will be installed: mailman pwgen 0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. Need to get 0 B/9670 kB of archives. After this operation, 33.5 MB of additional disk space will be used. Do you want to continue [Y/n]? y サポートする言語で英語と日本語を指定する。 デフォルトの言語は日本語を指定。 newlist mailmanを実行するようメッセージが出るので、指示に従う。(ただし、サーバ移行の場合はしなくていよい?) 英語環境にしておけば日本語もインストールされると思ったが、Ubuntu 12.04 では英語しかインストールされなかった。 Looking for enabled languages (this may take some time) ... done. Installing site language en ............................................ done. Configuring mailman for domain hostname.domainname ... Upgrading from version 0x0 to 0x2010ef0 getting rid of old source files * Site list for mailman missing (looking for list named 'mailman'). * Please create it; until then, mailman will refuse to start. 仕方がないので、dpkg-reconfigure で再度日本語を指定してインストールした。 $ sudo dpkg-reconfigure mailman
* Stopping Mailman master qrunner mailmanctl PID unreadable in: /var/run/mailman/mailman.pid
[Errno 2] No such file or directory: '/var/run/mailman/mailman.pid'
Is qrunner even running?
[ OK ]
Looking for enabled languages (this may take some time) ... done.
Installing site language en ............................................ done.
Installing site language ja ............................................ done.
No updates are necessary.
* Site list for mailman missing (looking for list named 'mailman').
* Please create it; until then, mailman will refuse to start.
/etc/mailman ディレクトリに ja ディレクトリができていればOK。 $ ls -al /etc/mailman
total 40
drwxr-xr-x 4 root list 4096 May 11 06:40 .
drwxr-xr-x 100 root root 4096 May 11 06:39 ..
-rw-r--r-- 1 root root 2477 Oct 19 2011 apache.conf
drwxr-xr-x 2 root root 4096 May 11 06:39 en
drwxr-xr-x 2 root root 4096 May 11 06:40 ja
-rw-r--r-- 1 root root 0 May 11 06:40 leftover
-rw-r--r-- 1 root root 4388 May 11 06:40 mm_cfg.py
-rwxr-xr-x 1 root root 6240 Oct 19 2011 postfix-to-mailman.py
-rwxrwxr-x 1 root root 4090 Oct 19 2011 qmail-to-mailman.py
設定 †初期設定 †ターミナルの文字コードがUFT-8だと文字化けするので、端末の文字コードをEUC-JPに変更するか、環境変数LANGをCに変更する。オプションを付けずに実行するとチェックだけする。 $ export LANG=C $ sudo check_perms directory must be at least 02775: /var/lib/mailman/logs /var/lib/mailman/pythonlib bad group (has: root, expected list) /var/lib/mailman/cron bad group (has: root, expected list) 中略 directory permissions must be 02775: /var/lib/mailman/messages/ar/LC_MESSAGES directory permissions must be 02775: /var/lib/mailman/messages/it/LC_MESSAGES Problems found: 77 Re-run as list (or root) with -f flag to fix 設定を変更するには、-f オプションをつけて実行する。 $ sudo check_perms -f
directory must be at least 02775: /var/lib/mailman/logs (fixing)
/var/lib/mailman/pythonlib bad group (has: root, expected list) (fixing)
/var/lib/mailman/cron bad group (has: root, expected list) (fixing)
中略
directory permissions must be 02775: /var/lib/mailman/messages/ar/LC_MESSAGES (fixing)
directory permissions must be 02775: /var/lib/mailman/messages/it/LC_MESSAGES (fixing)
Problems found: 77
Re-run as list (or root) with -f flag to fix
Mailmanの管理パスワードの設定 †ターミナルの文字コードがUFT-8だと文字化けするので、環境変数LANGをCに変更してから、コマンドを実行する。 $ export LANG=C $ sudo mmsitepass New site password: ←Mailman管理用のパスワードを入力する Again to confirm password: ←同じパスワードをもう一度入力する Password changed. /var/lib/mailman/data/adm.pw ファイルが作成される。 /etc/mailman/mm_cfg.pyの編集 †$ diff -Nur /tmp/mm_cfg.py.orig /etc/mailman/mm_cfg.py --- /tmp/mm_cfg.py.orig 2009-01-11 16:33:21.000000000 +0900 +++ /etc/mailman/mm_cfg.py 2009-01-11 14:31:11.000000000 +0900 @@ -57,8 +57,8 @@ #------------------------------------------------------------- # If you change these, you have to configure your http server # accordingly (Alias and ScriptAlias directives in most httpds) -DEFAULT_URL_PATTERN = 'http://%s/cgi-bin/mailman/' -PRIVATE_ARCHIVE_URL = '/cgi-bin/mailman/private' +DEFAULT_URL_PATTERN = 'https://%s/mailman/' +PRIVATE_ARCHIVE_URL = '/pipermail' IMAGE_LOGOS = '/images/mailman/' #------------------------------------------------------------- @@ -92,7 +92,7 @@ #------------------------------------------------------------- # Uncomment if you use Postfix virtual domains, but be sure to # see /usr/share/doc/mailman/README.Debian first. -# MTA='Postfix' +MTA='Postfix' #------------------------------------------------------------- # Uncomment if you want to filter mail with SpamAssassin. For @@ -102,3 +102,12 @@ # Note - if you're looking for something that is imported from mm_cfg, but you # didn't find it above, it's probably in /usr/lib/mailman/Mailman/Defaults.py. + +################################################## +# Put YOUR site-specific settings below this line. +DEFAULT_LIST_ADVERTISED = No +OWNERS_CAN_DELETE_THEIR_OWN_LISTS = Yes +DEFAULT_SUBJECT_PREFIX = "[%(real_name)s:%%d] " +DEFAULT_REPLY_GOES_TO_LIST = 1 +DEFAULT_NEW_MEMBER_OPTIONS = 258 +DEFAULT_GENERIC_NONMEMBER_ACTION = 2 aliasesの設定 †/etc/aliases †root や postmaster 宛などのメールの配送先を指定する。また、Mailman はユーザ list の権限で実行されるので、list 宛にもエラーメールが送信されるため、list 宛のメールもどこか実アドレスに配送されるよう指定するとよいかも。その他のエイリアスもこのファイルに記述する。 root: hoge@hogehoge postmaster: root list: kore@korekore test: hoge@hogehoge ファイルを変更したら、手動で反映させる。 $ sudo newaliases
Mailman 用 †他のディストリビューションでは /etc/mailman ディレクトリ以下に aliasesファイルが作成されるが、Ubuntu では /var/lib/mailma//data ディレクトリ以下に作成されるので注意。 $ sudo chmod 0664 /var/lib/mailman/data/aliases.db $ sudo /usr/lib/mailman/bin/genaliases $ sudo chown list:list /var/lib/mailman/data/aliases* $ ls -al /var/lib/mailman/data total 48 drwxrwsr-x 2 root list 4096 Jan 11 14:45 . drwxrwsr-x 9 root list 4096 Jan 10 09:00 .. -rw-r----- 1 root list 41 Jan 11 14:13 adm.pw -rw-rw---- 1 list list 355 Jan 11 15:18 aliases -rw-rw-r-- 1 list list 12288 Jan 11 15:18 aliases.db -rw-rw-r-- 1 root list 10 Jan 10 09:01 last_mailman_version -rw-r--r-- 1 root list 14114 Mar 7 2008 sitelist.cfg /etc/postfix/main.cfの変更 alias_maps = hash:/etc/aliases alias_database = hash:/etc/aliases ↓ alias_maps = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases alias_database = hash:/etc/aliases, hash:/var/lib/mailman/data/aliases Postfixを再起動する。 # /etc/rc.d/init.d/postfix restart ← Postfix再起動 Apache2の設定 †Mailmanで提供されている設定ファイルを一部変更して Apache2 を再起動する。 $ sudo cp /etc/mailman/apache.conf /etc/apache2/conf.d/mailman $ sudo vi /etc/apache2/conf.d/mailman $ sudo /etc/init.d/apache2 force-reload
管理用ページは SSL 経由でアクセスさせたいので、/mailman/ 以下も強制的に https: にリダイレクトするように設定する。詳しくは、http → https へリダイレクトする を参照のこと。
めもめも $ sudo /etc/init.d/postfix restart * Stopping Postfix Mail Transport Agent postfix [ OK ] * Starting Postfix Mail Transport Agent postfix [ OK ] $ sudo cp /etc/mailman/apache.conf /etc/apache2/sites-available/mailman $ sudo vi /etc/apache2/sites-available/mailman $ sudo vi /etc/apache2/sites-available/default $ sudo a2ensite mailman Enabling site mailman. To activate the new configuration, you need to run: service apache2 reload $ sudo service apache2 reload * Reloading web server config apache2 [ OK ] ML の作成 †ML の管理 †ML の削除 †https://サーバー名/mailman/rmlist/ML名 にアクセスする サーバの移行 †サーバの入れ替えなどで Mailman を別マシンで稼働させるには、Mailman で利用されるファイルを新マシンにコピーし、設定もコピーすればよい。 データファイルのコピー †Mailman で利用されるファイルは、/var/lib/mailman ディレクトリ中の archive/* lists/* data/adm.pw data/aliases data/aliases.db である。 まずは、移行元のサーバで mailman のデーモンを停止し、データのバックアップを取る。 $ sudo /etc/init.d/mailman stop * Stopping Mailman master qrunner mailmanctl [ OK ] $ cd /var/lib/mailman $ sudo tar czvf /tmp/mailman-backup-`date +%Y%m%d`.tar.gz archives lists data/a* バックアップしたファイルを scp などで移行先のサーバへコピーして、展開する。 $ sudo tar zxvfp mailman-backup-20120511.tar.gz -C /var/lib/mailman
設定ファイルのコピー †あとは、新規インストールと同じ手順で /etc/mailman/mm_cfg.pyの編集 → aliasesの設定 → Apache2の設定 と作業する。 既存MLの設定の変更 †各MLの設定は、/var/lib/mailman/lists/(ML名)/config.pck に保存されている。設定ファイルに埋まっているサイトの URL が変更されないため、URL が違うために,投稿が保留されたメールの承認などができなくなった. config.pck はバイナリファイルなのでエディタで直接編集できない。内容を閲覧するには /usr/lib/mailman/bin/dumpdb コマンドを用いる。 #highlighter(){{ #highlighter(){{ 参考 †設定を反映させる †設定がすべて終了したら、Mailman を起動するのを忘れないように。 $ sudo /etc/init.d/mailman start
リンク †
|