本稿は、Eximのフィルタ機能について書かれています。 ファイルの場所については、Debian GNU/Linuxのパッケージを基準にしています。
under construction.
Eximには、強力なフィルタ機能が内蔵されています。 このフィルタ機能は、一般的な.forwardファイルの機能を大幅に拡張したもので、使いこなすことができれば、Eximをもっと便利に使うことができるようになります。
まず、フィルタが使えるか確認しましょう。
/etc/exim.confの、userforwardディレクタに、filterが書いてあるのを確認しましょう。
もし、コメントアウトされていたら、システム管理者にお願いして、.formardファイルで使えるようにしてもらってください。
フィルタ機能を使うには、.formardファイルの先頭に、# Exim filterという行を書きます。 大文字でも小文字でもいいですよ。 今は安全のため、.forwardファイルを直接書き換えるのでなく、いったん別のファイルを作って、テストしてからにしましょうね。
Eximで、フィルタのテストをするには、-bfオプションを使用します。 exim -bf filter < messageとすることで、メールがどのように処理されるかが表示されます。 テストしてみて、おかしくなければ、.forwardにコピーしましょう。
それでは、ほかのアドレスに転送することからはじめてみましょう。
普通の.forwardファイルには、ただメールアドレスを書くだけですが、Eximのフィルタでは、deliverコマンドを利用します。
deliverコマンドの書式は、deliver addressです。
deliverの使用例:
# Exim filter deliver alice@first.domain.com deliver betty@second.domain.com
さて、メールの転送を設定する時は、しばしば自分のメールボックスにもコピーを残しておきたい時があります。 そういう時は、どうすればよいでしょうか。
Eximでは、unseenというキーワードを使うことができます。
このキーワードが付いたコマンドは、実際に配達しても、配達しなかったものとして、扱われます。
次の例では、alice@first.domain.comにメールを送りますが、それとは別に、デフォルトの配達も実行されます。
# Exim filter unseen deliver alice@first.domain.com
簡単な例:
# Exim filter pipe "/usr/bin/procmail"
under construction.
Eximのフィルタには、条件実行の機能があります。 この機能を使って、メールの自動分類を設定してみましょう。
# Exim filter if $header_subject: contains exim then save Mail/exim endif