本稿は、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"
	  

Eximでメール分類

under construction.

Eximのフィルタには、条件実行の機能があります。 この機能を使って、メールの自動分類を設定してみましょう。

# Exim filter
if $header_subject: contains exim then
	save Mail/exim
endif
	
Valid XHTML 1.0!