red (www server) に MTA

www@kyoma.org
作業:村田泰洋・高橋共馬・高山歌織・松倉尚史
www サーバ red に MTA をインストールする. これは, である.

qmail のインストール

blue にはあって red にはない機能は, apop, imap のうけつけ,ezmlm である. すなわち,qmail の本体のインストールおよび tcpserver による smtp 要求の受け付けのみが必要とされる. 以下は,blue 用の qmail インストールドキュメントへのリンクで, red に必要な部分のみを抜粋したものである. ただし,制御ファイルテストについては,red 用の 設定・作業をこの下に示した.

制御ファイル

qmail 制御ファイルに設定を書き込む. 制御ファイルは /var/qmail/control/ 以下にあり, その一覧は, http://www.jp.qmail.org/q103/jman5/qmail-control.html

まず,自ホスト名を設定する (詳細は http://www.jp.qmail.org/q103/jinstall/install.ctl.html).

qmail-1.03.tar.gz を展開してできたディレクトリ(qmail-1.03/)に移る.

# ./config

このスクリプトは,ホスト名を DNS 検索する.以下の内容が書き込まれる.

/var/qmail/control/defaultdomain     ep.sci.hokudai.ac.jp
/var/qmail/control/locals            localhost
                                     red.ep.sci.hokudai.ac.jp
/var/qmail/control/me                red.ep.sci.hokudai.ac.jp
/var/qmail/control/plusdomain        ac.jp
/var/qmail/control/rcpthosts         localhost
                                     red.ep.sci.hokudai.ac.jp

セカンダリメールサーバとして使うために,ドメイン部が ep.sci.hokudai.ac.jp である宛先のメールを受け取るようにする.

# echo ep.sci.hokudai.ac.jp >> /var/qmail/control/rcpthosts

yellow によって,www.ep.sci.hokudai.ac.jp という別名を当てられている場合,

# echo www.ep.sci.hokudai.ac.jp >> /var/qmail/control/locals
とする.ここで,ep.sci.hokudai.ac.jp を加えてはいけない.ep.sci.hokudai.ac.jp あてのメールをリモート配送させるためである.

ep.sci.hokudai.ac.jp あてのメールは,MX レコードを DNS 検索することなしに,mail.ep.sci.hokudai.ac.jp に送るために,以下を行う.これは, http://www.jp.qmail.org/q103/faq/faq2.html, http://www.jp.qmail.org/q103/jman8/qmail-remote.html#smtproutes を参考にしたものである.

# echo ep.sci.hokudai.ac.jp:mail.ep.sci.hokudai.ac.jp > /var/qmail/control/smtproutes
# chmod 644 /var/qmail/control/smtproutes

更に,メール発信の際にはドメイン部のないメールアドレスに,ep.sci.hokudai.ac.jp というドメイン部を付加するために,以下を行う.

# echo ep.sci.hokudai.ac.jp > /var/qmail/control/defaulthost
# chmod 644 /var/qmail/control/defaulthost

そのほかに,以下を設定.

# echo 10000000 >> /var/qmail/control/databytes
# chmod 644 /var/qmail/control/databytes
# echo 604800 >> /var/qmail/control/queuelifetime
# chmod 644 /var/qmail/control/queuelifetime
メールキュー最大滞在時間 queuelifetime は長めに設定する. blue の障害時には,セカンダリサーバとして メールをキューにためておくためである.

これら制御ファイルの効果は,qmail-showctl コマンド(マニュアルは http://www.jp.qmail.org/q103/jman8/qmail-showctl.html にある)で確認できる.

テスト

以下を行う.この一連のテストは, http://www.jp.qmail.org/q103/jinstall/test.deliver.html を基にしたものである.

ローカル配送テスト1:自分に送ってみる.kyoma は自分のユーザ名に変える.

% echo to: kyoma@red.ep.sci.hokudai.ac.jp | /var/qmail/bin/qmail-inject
~kyoma/Mailbox にメールが送られることを確認.

ローカル配送テスト2:存在しない宛先に送ってみる.

% echo to: nonexistent@red.ep.sci.hokudai.ac.jp | \
/var/qmail/bin/qmail-inject -f kyoma@red.ep.sci.hokudai.ac.jp
バウンスメールが ~kyoma/Mailbox に送られることを確認.

リモート送り出しテスト1:他のホスト上のアカウントへ送ってみる.

% echo to: kyoma | /var/qmail/bin/qmail-inject
kyoma@ep.sci.hokudai.ac.jp にメールが届くことを確認. 届いたメールの From: は kyoma@ep.sci.hokudai.ac.jp になっているか.

リモート送り出しテスト2:他のホスト上の存在しない宛先に送ってみる.

% echo to: nonexistent | /var/qmail/bin/qmail-inject
MAILER-DAEMON@ep.sci.hokudai.ac.jp からの バウンスメールが kyoma@ep.sci.hokudai.ac.jp に送られることを確認.

red におけるメールの発信

qmail では,メールの発信は qmail-inject (マニュアルは http://www.jp.qmail.org/q103/jman8/qmail-inject.html) による.

発信者アドレス(From:)

qmail-inhect を使って普通にメールを発信した場合, 発信者アドレスは,kyoma@ep.sci.hokudai.ac.jp のようになる. これは,ユーザ名をローカル部,/var/qmail/control/defaulthost を ドメイン部としたアドレスである.

From: に入るアドレスを, 他のアドレスとするには,以下のいずれかによる.

  1. 環境変数 QMAILUSER, QMAILHOST を 設定したいアドレスに対応したものにしておく.
  2. qmail-inject に渡すメッセージのヘッダに, From: フィールドを設け,明示する.

宛先アドレス(To:)

また,ドメイン部のない宛先にメールを出した場合, これもまた,/var/qmail/control/defaulthost をドメイン部とする. このため,blue のアドレスあてとなる.

これは,cron デーモンが送るレポートメールにも該当する.

返送先アドレス(Return-Path:)

外ホストに送ってバウンスしたときなど, 配送不能メッセージが戻ってくる先がこれである.

これも From: と同様,ユーザ名をローカル部,/var/qmail/control/defaulthost を ドメイン部としたアドレスとなる.

Return-Path: に入るアドレスを, 他のアドレスとするには,以下のいずれかによる.

  1. 環境変数 QMAILSUSER と QMAILSHOST を 設定したいアドレスに対応したものにしておく.
  2. qmail-inject を, qmail-inject -f kyoma@cosmos.sci.hokudai.ac.jp のように -f オプションを付けて起動.

セカンダリメールサーバとしてのはたらき

準備

セカンダリ MX レコードが red に向いていることが必要.

プライマリメールサーバダウン時の動作

外部から ep.sci.hokudai.ac.jp あてに送られてきたメールは,セカンダリメールサーバである red に送られる. red は,これを受け取るが,ローカルあてではなく,リモート配送すべきと判断する. ep.sci.hokudai.ac.jp あてのメールは,MX レコードの検索なしに,mail.ep.sci.hokudai.ac.jp あてに送ることになっている. しかし,mail.ep.sci.hokudai.ac.jp はダウンしているため,リモート配送は成功せず,メールキューにたまる.

mail.ep.sci.hokudai.ac.jp の復活後,これらのたまったメールはめでたく配送されていく. キューにたまったメールを速やかに配送させるためには,

# kill -ALRM [qmail-send の PID]
とする. http://www.jp.qmail.org/q103/jman8/qmail-send.html を参照せよ.

また,blue と同じように接続制御データベースと共に tcpserver による smtp の受付をさせているため,ep ドメイン内の smtp クライアント (パソコンなど) からのメールを任意の宛先に smtp 転送できる.