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