qmailの制御ファイル

Presented by 非武装エリア
最終更新日:2003年12月31日

qmailの動作を制御する制御ファイルは/var/qmail/controlディレクトに存在します。qmailではsendmailなどとは違い、各制御は、1つのファイルにまとまっておらず、制御毎のファイルとして設定します。
設定ファイルには次のようなものがあります。

制御ファイル 標準の設定内容 これを使うプロセス 目 的
badmailfrom 指定なし qmail-smtpd From アドレスのブラックリスト
bouncefrom MAILER-DAEMON qmail-send bounce senderのユーザ名
bouncehost meと同じ qmail-send bounce senderのホスト名
concurrencylocal 10 qmail-send ローカルへ同時配送できる数
concurrencyremote 20 qmail-send 同時配送可能なリモートの数
defaultdomain me と同じ qmail-inject デフォルトドメイン名
defaulthost me と同じ qmail-inject デフォルトホスト名
databytes 0 qmail-smtpd メッセージの最大バイト数(0=制限無し)
doublebouncehost me と同じ qmail-send 2重バウンスの場合のホスト名
doublebounceto postmaster qmail-send 2重バウンスを受け取るユーザ
envnoathost me と同じ qmail-send ”@”マークのないアドレスの際のデフォルトドメイン名
helohost me と同じ qmail-remote SMTP HELOで使われるホスト名
idhost me と同じ qmail-inject Message-IDに付けるホスト名
localiphost me と同じ qmail-smtpd ローカルIPアドレスに置き換わるホスト名
locals me と同じ qmail-send ローカルとするドメイン名
me システムのFQDN いろいろ 多くの制御ファイルにとってのデフォルト
正式ドメイン正式名(マシン名.ドメイン名)
morercpthosts 指定無し qmail-smtpd secondary rcpthosts database
percenthack 指定無し qmail-send domains that can use "%"-style relaying
plusdomain me と同じ qmail-inject 「+」によって代用されるドメイン名
qmqpservers 指定無し qmail-qmqpc QMQPサーバのIPアドレス
queuelifetime 604800 qmail-send メッセージがキューに残っていることができる時間(秒)
rcpthosts 指定無し qmail-smtpd メールの受け取りを許可するドメイン名
smtpgreeting me と同じ qmail-smtpd SMTPのgreeting message (挨拶文)
smtproutes 指定なし qmail-remote SMTPの転送先,
qmailに届いたメールを指定した先に転送できます。
timeoutconnect 60 qmail-remote SMTPの接続を待つ時間(秒)
timeoutremote 1200 qmail-remote リモートサーバを待つ時間(秒)
timeoutsmtpd 1200 qmail-smtpd SMTPクライアントを待つ時間(秒)
virtualdomains 指定無し qmail-send バーチャルドメインとユーザ名

たとえば、defaulhost ファイルで、

hogehoge.co.jp

という設定をする。こうすれば、メールを送信する際のヘッダー情報上のホスト名が、

username@hogehoge.co.jp

というように指定された名前だけになって相手に転送されます。

locals というコントロールファイルには、自分自身のドメイン名以外に、ホスト名の付いた形でのドメイン名も指定する方が良い。ここで指定したアドレスの宛のメールは、このサーバへのローカルユーザ宛と判断します。

localhost
hogehoge.co.jp
ms.hogehoge.co.jp

こうすることで、外部メールサーバから自分宛のメールを受け取ることができる筈である。

rcpthosts ファイルには、受信のアドレスとして指定できる@以降のアドレスとして受け入れるものを指定しておきます。ここはほぼ「locals」で指定したものと同じ内容になります。 localsとの違いは、localsで指定されたアドレスのメールを受けた場合には自分自身宛のメールとして処理するのに対して、rcpthostsでは自分宛でない無いメール(例えば一度、自分で受けてからどこかに転送するようなメール)のアドレスであっても受けることができます。

localhost
hogehoge.co.jp
.hogehoge.co.jp

最後の「.hogehoge.co.jp」とした場合には、「hogehoge.co.jp」の付いたすべてのサブアドレス宛のメールを受信するようになる。

以上の設定では、qmailのメールサーバにメールが届いた場合、qmailサーバにあるユーザにはメールが届くようにしたわけだが、qmail サーバを経由して別のメールサーバにメール送るには、qmailサーバに「メールリレー」をして貰う必要が出てくる。 しかし「メールリレー」を単純に許 してしまうと、外部のユーザが別の外部のユーザ宛てにメールを行うSPAMメールに悪用される危険があるため、デフォルトではメールリレーを許可していません。
そこで、2-1での説明の通り「RELAYCLIENT=""」環境変数を使い、内部ユーザからのメールはこの制限にかからないようしている訳です。

DMZにqmailのサーバを構築した場合や、ファイヤーウォール外部からファイヤーウォール内部にメールを転送したい場合、転送先を smtproute というコントロールファイルに記述することができます。

(smtprouteの例)
.hogehoge.co.jp:betu-host.hogehoge.co.jp
hogehoge.co.jp:betu-host.hogehoge.co.jp
.hogehoge.co.jp:[202.12.30.144]
:betu-host.hogehoge.co.jp 

としておけば、
 最初の行の場合(先頭にドット(.)がある場合)には@*.hogehoge.co.jp宛てに届いたメールはすべてそのまま、betu-hostへ転送されるようになります。
 また、ドメイン名でなくIPアドレスを使いたい場合には、".hogehoge.co.jp:[192.xxx.xxx.xxx]"というように、大括弧([])でIPアドレスをくくります。
「:転送先」のように指定すると、デフォルトの転送先を指定できます。

制御ファイルの意味については、
 http://www.jp.qmail.org/
の「qmail付属文書」−「qmail-control 」を辿ってください。


Copyrightc 1998-2003 ROBATA.ORG

Mailwebmaster@robata.org