Eximのワイルドカード
Eximで 任意のアドレスへのメールを転送する設定を紹介します。 普通は存在しないメールアドレスにメールが来ると 「そのユーザは存在しませんよ」とエラーを返します。 この挙動を変えて、 存在しないユーザへのメールも適当なアカウントに転送する設定です。
ワイルドカードが使えるようにする
/etc/aliasesでワイルドカードが使えるようにします。 コンパイルのときに有効にしなければならないようですが、 Debian GNU/Linux 3.1(Sarge)では 有効になっています。
Eximの設定ファイルを開きます。
Debianでは /etc/exim4/exim4.conf.template か、
/etc/exim4/conf.d 以下のファイルです。
Exim alias lookupsによれば
/etc/exim4/conf.d/router/400_exim4-config_system_aliases です。
data = ${lookup{$local_part}lsearch{/etc/aliases}}
という行を探し、
data = ${lookup{$local_part}wildlsearch{/etc/aliases}}
と書き換えます。
これで /etc/aliases でワイルドカードが使えるようになりました。
Single-key lookup typesによれば
*fish
のような書き方ができるようです。
試してみましたが、fish*
では駄目でした。
最後に update-exim4.conf; /etc/init.d/exim4 restart とコマンドを打っておきます。
エイリアスの設定
/etc/aliases に *: username
のような行を書いておきます。
username は実在するユーザですが、
username に対しては /etc/aliases の評価は行われないようです。
つまり username: root
とあってもrootには転送されません。
/etc/aliases に *: username
の上にそれ以外の行があれば、
その行で設定したエイリアスは有効になります。
例えば postmaster: root
とあれば、
postmasterは*にもマッチするのですが、それよりもrootへの転送が優先されます。
今の /etc/aliases はこんな感じ:
foo: foo@example.com bar: "|/usr/local/bin/bar" *: fuktommy