ページ更新: 2006-11-06 (月) (4697日前)

関連: ソフト/Bug Tracking/trac/MailArchiveプラグイン, Linux/Postfix

(2006-11-03 新規作成)

quickmlをインストールする。環境は Debian GNU/Linux Sarge。既存のMTA (postfix) と共存させる。

目次

[編集]

情報源 #

[編集]

QuickML #

QuickMLの中身に興味を持ったときは:

[編集]

Postfix #

[編集]

PostfixとQuickML #

[編集]

インストール #

quickml パッケージの検索と確認:

# apt-cache search quickml
quickml - Very-easy-to-use mailing list system

# apt-cache show quickml | grep ^Version
Version: 0.7-2

# apt-cache show quickml
Package: quickml
Priority: optional
Section: mail
Installed-Size: 268
Maintainer: Fumitoshi UKAI <ukai@debian.or.jp>
Architecture: all
Version: 0.7-2
Depends: ruby1.8
Filename: pool/main/q/quickml/quickml_0.7-2_all.deb
Size: 35028
MD5sum: cff39ed4584a2213613cc62f0febd1dd
SHA1: bdb46a3b012e6324e69d7359a7716112cd80d923
SHA256: 785e9fa5b1b1585a4d9a188db1d24e0884b2cbd3eaba2ca748972ca319d50883
Description: Very-easy-to-use mailing list system
 quickml server is a very-easy-to-use mailing list system.
 quickml server provides very-easy-to-use mailing list service.
 http://quickml.com/quickml/

quickmlパッケージのインストール:

# apt-get -u install quickml
Reading Package Lists... Done
Building Dependency Tree... Done
The following NEW packages will be installed:
  quickml
0 upgraded, 1 newly installed, 0 to remove and 2 not upgraded.
 :

インストールされたファイルを確認、ファイルの役割の当りをつける:

# dpkg --listfiles quickml
/.
/usr
/usr/bin
/usr/bin/quickml-analog                 ★quickmlログ解析ツール
/usr/sbin
/usr/sbin/quickml
/usr/share
/usr/share/quickml
/usr/share/quickml/messages.ja          ★ML参加者へのQuickMLの使用法
/usr/share/doc
/usr/share/doc/quickml
/usr/share/doc/quickml/README
/usr/share/doc/quickml/quickml.ja.rd.gz ★マニュアル日本語版
/usr/share/doc/quickml/ml-usage.en.rd   ★quickmlの使い方(英語)
/usr/share/doc/quickml/with-mta.ja.rd   ★他のMTAと共存させる方法 (quickmlrc, DNS, qmail, Postfix)
/usr/share/doc/quickml/README.Debian    ★設定例 (postfixと共存する設定, 英語)
/usr/share/doc/quickml/copyright
/usr/share/doc/quickml/quickml.en.rd.gz
/usr/share/doc/quickml/changelog.Debian.gz
/usr/lib
/usr/lib/ruby
/usr/lib/ruby/1.8
/usr/lib/ruby/1.8/quickml
/usr/lib/ruby/1.8/quickml/config.rb
/usr/lib/ruby/1.8/quickml/gettext.rb
/usr/lib/ruby/1.8/quickml/mail.rb
/usr/lib/ruby/1.8/quickml/sweeper.rb
/usr/lib/ruby/1.8/quickml/core.rb
/usr/lib/ruby/1.8/quickml/logger.rb
/usr/lib/ruby/1.8/quickml/server.rb
/usr/lib/ruby/1.8/quickml/utils.rb
/usr/lib/ruby/1.8/quickml/version.rb
/usr/lib/ruby/1.8/quickml.rb
/var
/var/log
/var/log/quickml                        ★ログファイルのディレクトリ。/etc/quickml/quickmlrcで指定
/var/lib
/var/lib/quickml                        ★メーリングリストごとの設定。/etc/quickml/quickmlrcで指定
/var/run
/var/run/quickml
/etc
/etc/quickml
/etc/quickml/quickmlrc
/etc/logrotate.d
/etc/logrotate.d/quickml
/etc/init.d
/etc/init.d/quickml                     ★起動/終了スクリプト。自動起動するならupdate-rc.dすること。
/usr/sbin/quickml-ctl                   ★起動/終了スクリプト。
[編集]

設定 #

既存のMTAのバージョンを確認

# dpkg --status postfix | grep ^Version
Version: 2.1.5-9

以後の作業は /usr/share/doc/quickml/README.Debian を元にした。

[編集]

DNSにquickml用のホスト名を登録する #

DNSにquickml用のホスト名を追加登録する。 説明のため、この文書ではquickml用のホスト名を mltest.example.jp とする。

(設定/動作確認の手順は省略)

[編集]

Postfixの設定 #

以下の3つの項目を設定する。

  1. transport_maps 受信者アドレス→配送先リスト
  2. local_recipient_maps ローカル受信者の存在チェック方法の指定。存在チェックを行わないドメインのリストも指定できる。
  3. mydestination 受信するドメインのリスト

(動作確認手順は省略。)

[編集]

/etc/postfix/transport.db #

/etc/postfix/transport の末尾に以下の行を追加:

mltest.example.jp     smtp:[127.0.0.1]:10025

DB を作成:

# postmap hash:/etc/postfix/transport

DBの種別を確認:

# file /etc/postfix/transport.db
/etc/postfix/transport.db: Berkeley DB (Hash, version 8, native byte-order)
[編集]

/etc/postfix/transport.db #

/etc/postfix/local_recipient を新規作成:

@mltest.example.jp OK

DBを作成:

# postmap hash:/etc/postfix/local_recipient

DBの種別を確認:

# file /etc/postfix/transport.db
/etc/postfix/transport.db: Berkeley DB (Hash, version 8, native byte-order)
[編集]

mydestination #

/etc/postfix/main.cf に以下の行を修正/追加

mydestination に mltest.example.jpを追加、transport_maps, local_recipient_maps を追加:

mydestination = $myhostname, localhost.$mydomain, $mydomain, mltest.example.jp
transport_maps = hash:/etc/postfix/transport
local_recipient_maps = $alias_maps unix:passwd.byname hash:/etc/postfix/local_recipient

(動作確認手順は省略。)

[編集]

QuickMLの設定 #

/etc/quickml/quickmlrc を修正:

# -*- mode: ruby -*-
mailname = File.open("/etc/mailname") do |fp| fp.read.chomp; end
Config = {
  :port => 10025,       # see /usr/share/doc/quickml/with-mta.rd
  :user => "list",
  :group => "list",
  :bind_address => "127.0.0.1",

  :smtp_host => 'localhost',                ★
  :domain => 'mltest.example.jp',           ★
  :postmaster => 'postmaster@example.jp',   ★
  :info_url => "http://example.jp/",        ★

  :data_dir => '/var/lib/quickml',
  :pid_file => '/var/run/quickml/quickml.pid',
  :log_file => '/var/log/quickml/quickml-log',

  :verbose_mode => true,
  :max_members => 100,
  :max_mail_length => 100 * 1024,
  :ml_life_time => 86400 * 31,
  :ml_alert_time => 86400 * 30,
  :auto_unsubscribe_count => 5,

  :sweep_interval => 3600,
  :max_threads => 10,
  :timeout => 120,
  :use_qmail_verp => false,

  :confirm_ml_creation => false, # for confirming ML creation.

  :message_catalog => '/usr/share/quickml/messages.ja', # for Japanese messages
  # :message_catalog => nil,  # for English messages
  # :authorized_creators_list => '/etc/quickml/authorized_creators',
  # :distribute_address => "dist@#{mailname}",
  # :report_address => "notify@#{mailname}"
}

QuickMLを起動:

# /etc/init.d/quickml start

起動の確認:

# netstat -an | grep :10025
tcp        0      0 127.0.0.1:10025         0.0.0.0:*               LISTEN

# lsof -i:10025
COMMAND   PID USER   FD   TYPE   DEVICE SIZE NODE NAME
quickml 25190 list    5u  IPv4 26560183       TCP localhost:10025 (LISTEN)
quickml 25191 list    5u  IPv4 26560183       TCP localhost:10025 (LISTEN)
quickml 25192 list    5u  IPv4 26560183       TCP localhost:10025 (LISTEN)
# cat /var/run/quickml/quickml.pid
25190

# cat /var/log/quickml/quickml-log
2006-11-04T00:30:14: Sweeper started
2006-11-04T00:30:14: Server started at localhost:10025 [7778]

動作確認手順は省略。メーリングリストの作成/ユーザー追加/ユーザー削除などを試しておく。

動作確認に使ったメーリングリストを削除したいなら /var/lib/quickml/ から該当のファイル群を消しておく。

[編集]

メモ #

[編集]

authorized_creators_list, verbose_mode (2006-11-06) #

quickmlrc の authorized_creators_list とか verbose_mode の説明が見つけられない。 実際に設定して試したり、Rubyのコードを読めばいいんだけど、ちょっと面倒だなあ。

試しに、authorized_creators_list に1行に1メールアドレスを記載してquickmlを再起動し、 記載していないアドレスからメーリングリスト作成してみた。

quick-ml.logに次のログが記載され、メーリングリストは作成されなかった:

2006-11-06T04:14:00: Unknown Session Error: QuickML::UnauthorizedCreator: QuickML::UnauthorizedCreator

このとき、返信メールはない。

次に、authorized_creators_list にメールアドレスを追加し、quickmlを再起動し、 記載したアドレスからメーリングリスト作成してみたところ、通常どおり成功した。