2005-04-25
_ 飯
豚の角煮、味噌汁、もずくのサラダ。
_ 同一ホスト上で qmail + quickml を使う
qmail を動かすホストと同じホスト上で quickml サーバーを動かす。
すでに qmail は tcpserver と daemontools の管理下で動作しているものとする。
qmail を起動させるときにRELAYCLIENT を設定してなくてハマった。
参考
- quickml
- quickmlサーバ 他のMTAと共存させる方法
- UNIX USER 2004.03 の特集「 独自に quickml の環境を構築する 」
- quickmlとsendmailを同一ホストに共存させる
- qmail の動作
環境
Plamo Linux 2.x
quickml
取得してコンパイルする。
rin@sakura[~/usr/local]% wget http://quickml.com/quickml/quickml-0.7.tar.gz rin@sakura[~/usr/local]% tar xzf quickml-0.7.tar.gz rin@sakura[~/usr/local]% cd quickml-0.7 rin@sakura[~/usr/local/quickml-0.7]% ./configure && make
インストールする。
rin@sakura[~/usr/local/quickml-0.7]% su bash-2.04# make install
設定ファイル
quickmlrc を編集する。
bash-2.04# cd /usr/local/etc bash-2.04# cp quickmlrc.sample quickmlrc bash-2.04# diff -u quickmlrc.sample quickmlrc --- quickmlrc.sample Fri Apr 1 18:44:41 2005 +++ quickmlrc Mon Apr 25 23:41:16 2005 @@ -1,14 +1,14 @@ # -*- mode: ruby -*- Config = { - :user => "root", - :group => "root", - :port => 25, + :user => "quickml", + :group => "quickml", + :port => 10025, :bind_address => "0.0.0.0", - :smtp_host => 'mail.example.net', + :smtp_host => '127.0.0.1', :smtp_port => 25, - :domain => 'example.net', - :postmaster => "postmaster@example.net", + :domain => 'qml.example.net', + :postmaster => "rin@maaya.jp", :info_url => "http://quickml.com/", :data_dir => '/usr/local/var/quickml', @@ -25,7 +25,7 @@ :sweep_interval => 3600, :max_threads => 10, :timeout => 120, - :use_qmail_verp => false, + :use_qmail_verp => true, :confirm_ml_creation => false, # for confirming ML creation. (experimental)
開始
bash-2.04# quickml-ctl start
Starting quickml services: /usr/local/lib/ruby/site_ruby/1.8/quickml/gettext.rb:55:in `load': No such file to load -- /usr/local/share/messages.ja (LoadError) from /usr/local/lib/ruby/site_ruby/1.8/quickml/gettext.rb:55:in `initialize' from /usr/local/lib/ruby/site_ruby/1.8/quickml/config.rb:48:in `new' from /usr/local/lib/ruby/site_ruby/1.8/quickml/config.rb:48:in `initialize' from /usr/local/lib/ruby/site_ruby/1.8/quickml/config.rb:76:in `new' from /usr/local/lib/ruby/site_ruby/1.8/quickml/config.rb:76:in `load' from /usr/local/sbin/quickml:66:in `main' from /usr/local/sbin/quickml:81
怒られたのでコピーする。
bash-2.04# cp /home/rin/usr/local/quickml-0.7/messages.ja /usr/local/share/
もいっかい開始
bash-2.04# quickml-ctl start
qmail との共存
他の MTA と共存させる方法 を参考に設定する。
DNS を設定する
- mail.example.net を MTA サーバーとする。
- mail.example.net の MX レコードを mail.example.net にする。
- mail.example.net の A レコードを xxx.xxx.xxx.xxx にする。
- qml.example.net を quickml サーバーとする。
- qml.example.net の MX レコードを qml.example.net にする。
- qml.example.net の A レコードを xxx.xxx.xxx.xxx にする。
xxx.xxx.xxx.xxx は外部に公開している IP アドレスにする。mail と qml は同じ IP アドレスである。
qmail の設定
以下のようにする。
qml.example.net 宛てのメールを qmail -> qml へと渡す。
rin@sakura[/var/qmail/control]% cat smtproutes qml.example.net:127.0.0.1:10025
qml -> qmail -> 外部へのメールを転送させるために qml を許可する。
rin@sakura[/var/qmail/control]% cat rcpthosts example.net qml.example.net
tcpserver
qmail-smptd をローカルネットワークのホストからのメール転送を許可する。ようするに環境変数 RELAYCLIENT を設定する。
rin@sakura[~]% cat /etc/tcp.smtp # # qmail-smtpd config # .example.net:allow,RELAYCLIENT="" 192.168.0.:allow,RELAYCLIENT="" 127.:allow,RELAYCLIENT="" :allow
設定を変えたら再起動させておく。
bash-2.04# /usr/local/bin/tcprules /etc/tcp.smtp.cdb /etc/tcp.smtp.tmp < /etc/tcp.smtp bash-2.04# svc -d /service/smtpd/ bash-2.04# svc -u /service/smtpd/
quickml のユーザーとグループを作成する
bash-2.04# mkdir /home/quickml bash-2.04# groupadd quickml bash-2.04# useradd -g quickml quickml
quickml を再起動させる
bash-2.04# quickml-ctl restart
動作確認
hogehoge@qml.example.net に送信して ML が作られることを確認する。