blog.fuktommy.com

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
Copyright© 1998-2014 Fuktommy. All Rights Reserved.
webmaster@fuktommy.com (Legal Notices)