このドキュメントは maildrop 配送エージェントを Postfix に組み込むための 様々なオプションを議論します:
local(8) 配送エージェントを媒介として 使わずに、メールを直接 maildrop に 配送するように Postfix を設定することができます。これはローカル aliases(5) 展開や $HOME/.forward ファイルの 処理が受けられないことを意味します。たいていは UNIX ホームディレクトリを 持たない受信者を持つ、ホスティング しているドメイン に対してこれをおこないます。
以下の例は some.domain と someother.domain に対して maildrop を使う方法を 示しています。
1 /etc/postfix/main.cf: 2 maildrop_destination_recipient_limit = 1 3 virtual_mailbox_domains = some.domain someother.domain 4 virtual_transport = maildrop 5 virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox 6 virtual_alias_maps = hash:/etc/postfix/virtual_alias 7 8 /etc/postfix/virtual_mailbox: 9 user1@some.domain ...text here does not matter... 10 user2@some.domain ...text here does not matter... 11 user3@someother.domain ...text here does not matter... 12 13 /etc/postfix/virtual_alias: 14 postmaster@some.domain postmaster 15 postmaster@someother.domain postmaster
2行目は Postfix が同時に1つの受信者を maildrop 配送エージェントに 渡すのに必要です。
3行目は Postfix に some.domain と someother.domain はいわゆる バーチャル メールボックスドメインであることを知らせます。main.cf に名前を列挙する 代わりに、ファイルにリストアップすることもできます; 詳細は virtual_mailbox_domains ドキュメントを参照してください。
4行目は some.domain および someother.domain 宛のメールは maildrop 配送エージェントで配送すべきであるということを指定しています。
5行目と8-11行目は Postfix SMTP サーバがメールを受け取るべき 受信者を指定しています。これはメールキューが配送できないメッセージで 詰まらないようにします。この機能を無効にするには、空の値を指定して ください ("virtual_mailbox_maps =")。
6行目と13-15行目は postmaster 宛のメールをローカルの postmaster に 転送します。RFC 821 は 全てのドメインに postmaster アドレスがあることを要求しています。
以下で使われる vmail ユーザ ID は maildrop が走るときに使うユーザです。 これはバーチャルメールボックスが全て同じ所有者の場合に、その所有者となります。 maildrop が suid の場合 (maildrop のドキュメントを参照)、maildrop はメールを 配送するのに適切な所有者に変わります。
注意: maildrop ユーザとして postfix ユーザを使ってはいけません。
/etc/postfix/master.cf: maildrop unix - n n - - pipe flags=ODRhu user=vmail argv=/path/to/maildrop -d ${recipient}
上記のコマンドライン引数などの詳細は pipe(8) マニュアルページにあります。
user+extension@domain 形式のアドレスをサポートしたければ、代わりに 以下を使ってください:
/etc/postfix/master.cf: maildrop unix - n n - - pipe flags=ODRhu user=vmail argv=/path/to/maildrop -d ${user}@${nexthop} ${extension} ${recipient} ${user} ${nexthop}
メールは ${user}@${nexthop} に配送されます (キーは maildrop userdb 検索に マッチします)。${extension} やその他のアドレスの要素は $1, $2, $3, ... として maildrop ルールで使え、master.cf では省略可能であり、不要であれば maildrop で 無視されます。
local(8) 配送エージェントを通して、メールを maildrop に配送するように Postfix を設定することができます。これは上で議論した "直接" なアプローチ よりは若干効率が落ちますが、ローカル aliases(5) 展開や $HOME/.forward ファイルの利便性が得られます。たいていは UNIX システムアカウントを持ったユーザを持つ、 mydestination にリストアップ されたドメインに対してこれを使います。
全ての UNIX システムアカウントに対して maildrop 配送するよう設定するには:
/etc/postfix/main.cf: mailbox_command = /path/to/maildrop -d ${USER}
注意: ${USER} は大文字でつづります。
特定のユーザのみに maildrop 配送を有効にするには、 Postfix local(8) 配送エージェントの mailbox_command_maps 機能が使えます:
/etc/postfix/main.cf: mailbox_command_maps = hash:/etc/postfix/mailbox_commands /etc/postfix/mailbox_commands: you /path/to/maildrop -d ${USER}
特定のユーザに対する maildrop 配送はユーザの $HOME/.forward ファイルから 呼び出すことでも可能です:
/home/you/.forward: "|/path/to/maildrop -d ${USER}"