Home Top Up


qmail reference

dot-qmail (5)

(control the delivery of mail messages)


[概要]

メール・メッセージの配信を制御します。

[説明]

通常、qmail-local (8) プログラムは、 着信したメッセージ(incoming message)をシステムのメール・ボックスに配信します。 このメール・ボックスに使用されるファイルは、 ホーム・ディレクトリの Mailbox ファイル ($HOME/Mailbox) です。

メールは、Mailbox ファイルに保存する代わりに、 すべてがあなたの制御下で、 次のようなことを行えます。

■ .qmail の記述方法

qmail-local の動作を変更するために、 あなたのホーム・ディレクトリに、 .qmail ファイルを設置します。

.qmail は、1つ以上の行で構成されます。 それぞれの行は、配信命令(delivery instruction)です。 qmail-local は、それぞれの命令を順番に解釈します。

配信命令には、次の5つのタイプがあります。

  1. 注釈
  2. プログラム
  3. 転送
  4. mbox
  5. maildir

(1) 注釈 (comment)

(2) プログラム (program)

(3) 転送 (forward)

(4) mbox

(5) maildir

.qmail に実行ビットが設定されている場合、

などを含めてはいけません。 qmail-local がこれらの行を発見すると、 停止し一時的な失敗(temporary failure)を表示します。

.qmail 完全に空か存在しない場合、 qmail-local は、 システム管理者により設定された defaultdelivery 命令に従います。 通常、defaultdelivery は ./Mailbox なので、 qmail-local は、 メール・メッセージを Mailbox に、 mbox 形式で追加します。

.qmail は、 行末に、余分な空白やタブを含んでもかまいません。 空白行も許されていますが、 .qmail の最初の行は、空白行ではいけません。

.qmail が、誰もが書き込める場合やグループのメンバーが書き込める場合、 qmail-local は停止し、一時的な失敗(temporary failure)を表示します。

■ 安全な .qmail ファイルの編集

着信メッセージは、いつでも到着することができます。 .qmail ファイルを安全に編集するには、 最初に、 ホーム・ディレクトリのスティッキ・ビット(sticky bit)を設定します。 ホーム・ディレクトリがスティッキである場合、 qmail-local は、 すべてのメッセージの配送を一時的に延期します。

編集が終了したら、スティッキ・ビットを元に戻します。

次のような方法で、 新しい .qmail ファイルをテストしておくと良いでしょう。 ホーム・ディレクトリにスティッキ・ビットが設定されている場合、 警告が表示されます。

■ 拡張アドレス

qmail システムでは、 自分のアカウント名であるアドレス user と同様に、 user-anything 形式のすべてのローカル・アドレスも制御します。 user-anything への配送は、 $HOME/.qmail-anything ファイルにより制御されます。 ただし、システム管理者は、この方式を変更することができます。 詳細は、qmail-users (5) を参照してください。

別名ユーザーは、すべての他のアドレスを制御します。 ローカルへの配送は、 homedir/.qmail-local ファイルによって制御されます。 ここで、homedir は、別名のホーム・ディレクトリです。

以下の記述では、 qmail-local は、メッセージのアドレスを local@domain として扱っています。 ここで、local は、.qmail-ext により制御されています。

.qmail-ext が完全に空である場合、 qmail-local は、システム管理者により設定された、 defaultdelivery 命令を解釈します。

.qmail-ext が存在しない場合、 qmail-local デフォルトの .qmail ファイルを試します。 例として、 ext が foo-bar の場合、 qmail-local は、最初に .qmail-foo-bar を試みます。 次に、.qmail-foo-default を試し、 最後に、.qmail-default を試します。 これらのどれも存在しければ、 qmail-local は、メッセージを返送します。

例外として、 基本的なユーザーのアドレスに関して、 qmail-local は、 存在しない .qmail を空の .qmail と同様に扱います。

[警告]

qmail-local が、 .qmail-ext または .qmail-default で指示されたメッセージを転送するとき、 .qmail-ext-owner が存在するかどうかを検査します。 存在した場合、 qmail-local は、 転送されたメッセージについて、 表書き発信者(envelope sender)として、 local-owner@domain を使用します。 存在しない場合、 オリジナルのメッセージの表書き発信者のままにします。 例外として、 表書き発信者が空アドレスや#@[]の場合、 つまり差戻しメール(bounce message)の場合、 qmail-local は、いつもオリジナルの表書き発信者のままにします。

qmail-local も、VERPs (variable envelope return paths) をサポートします。 .qmail-ext-owner と .qmail-ext-owner-default の両方が存在する場合、 qmail-local は、local-owner-@domain-@[] を、 表書き発信者として使用します。 このため、 受信者 recip@reciphost には、 表書き発信者が local-owner-recip=reci-phost@domain のように見えることになります。

■ エラー操作

配送命令が失敗すると、 qmail-local は即座に停止し、失敗を報告します。 他の配送のタイプでのどんなエラーも転送(forwarding)を妨げるので、 qmail-local は、他の命令の後で、転送(forwarding)を処理します。

プログラムが終了コード 99 を返す場合、 qmail-local は、.qmail 中の以降の行を無視しますが、 さらに、以前の転送行に注意を払います。

一つの命令における、一時的な失敗や恒久的な失敗が、 他の処理に影響を与えないよう、 独立した命令を設定するために、 命令を別々の .qmail-ext ファイルに移動します。 また、 .qmail-exts のすべてに転送するように、 中心の .qmail ファイルを設定します。 qmail-local は、同時に複数の転送行を扱えることに注意してください。

[ファイル]

$HOME/.qmail
$HOME/.qmail-anything
homedir/.qmail-local
.qmail-ext

[関連項目]

envelopes (5)
maildir (5)
mbox (5)
qmail-users (5)
qmail-local (8)
qmail-command (8)
qmail-queue (8)
qmail-lspawn (8)

[マニュアル・ページ]

日本語、 英語

▲ Top


(2003/01/28)