/etc/aliases にプログラムを指定する

Postfixでは、/etc/aliases にエイリアスを指定してメールを指定したアドレスに転送したりできるが、ここにプログラムも指定できるらしいので試してみた。
プログラムとメールアドレスの混在も可能。

/etc/aliases

foobar: "| /bin/cat > /tmp/test.eml"
fizbar: john@example.com, "| /bin/cat > /tmp/test.eml", smith@example.com

Postfix 再起動。

# service postfix restart

以下のようにメールを送信。

# mail foobar
Subject: test

test
test
test
.
Cc:

/tmp/test.eml を確認。

# cat /tmp/test.eml
From root@example.com  Thu Dec 13 22:59:28 2007
Return-Path: <root@example.com>
X-Original-To: foobar
Delivered-To: foobar@example.com
Received: by example.com (Postfix, from userid 0)
        id 3BF885C0FC; Thu, 13 Dec 2007 22:59:28 +0900 (JST)
To: foobar@example.com
Subject: test
Message-Id: <20071213135928.3BF885C0FC@example.com>
Date: Thu, 13 Dec 2007 22:59:28 +0900 (JST)
From: root@example.com (root)


test
test
test

うまくいった。アイデア次第でいろいろできそう。要するに標準入力(stdin)にメール全体が渡されるので、標準入力を使うプログラムを書けばよい。