複数メールアドレスを使う
info1@min10.com、info2@min10.com、・・・、infoN@min10.comというようにメールアドレスに番号が付いたものを取扱う(番号は事前に登録できない前提)にはどうしたらいいか。実際の受信ボックスは1つ。(この場合だと、info@min10.com)
結論
info1@min10.com、info2@min10.comはできませんが(ボクの浅学な知識では(こういうのを浅学菲才というのかな))、info+1@min10.com、info+2@min10.comだったらできます。
procmail
まず考えたのが、procmailでフィルタリングするときに、From:を見て振り分けてしまえばいいのではないかということ。
mailbox_command = /usr/bin/procmail
/etc/postfix/main.cf
これを追加して(もちろん、procmailがインストールされていることが必要です)、postfixをリスタートしてやってみましたが、/etc/aliasesにないメールアドレスは、procmailが起動する前にエラーで弾かれてしまいました。各ユーザごとの設定ではなく、/etc/procmailrcでユーザ共通の設定として書いたのですが、ダメですね。
/etc/aliases
では、/etc/aliasesのローカル部分で番号付きを指定する方法はないものか。「info.*」みたいな正規表現が通るのであればいいんだけど、そういう書き方は認められないようです。
拡張アドレス
http://www.kobitosan.net/postfix/jman/virtual.5.html
メールアドレスのローカル部分にオプションの受信者デリミタ (すなわち user+foo@domain) を含んでいると、検索順序は次のようになります: user+foo@domain, user@domain, user+foo, user, and @domain.
マッチしなかった拡張アドレス (+foo) はテーブル検索の結果に展開されます。
これによると、@domain指定が一番ゆるいので、「@min10.com info」と書いておけばユーザ指定がないものはすべて、info@min10.comへ送られそうです。ただ、本当に宛先不明であっても、宛先不明にならず、info@min10.comへ送られるのはいかがなものか。
で、user+foo@domainを使うことにしました。Gmailで、user+N@gmail.com形式が使えることは知っていたのですが、一般的なPostfixでも有効なんですね。これだと何もせず、info+1@min10.comは info@min10.com宛てとして受信されます。
参考
追記
コメントで「正規表現使えますよ」と教えていただいたのでやってみました。
alias_maps = hash:/etc/aliases, regexp:/etc/postfix/aliases.reg
/etc/postfix/main.cf
/^info[0-9]+(@min10\.com)?/ info@min10.com
/etc/postfix/aliases.reg
「sudo /etc/init.d/postfix restart」で再起動して OK。
実際、これで OKなんですが、実はちょっとした嘘があります。ドメインを付けた方(/^info[0-9]+@min10\.com/)がどうやっても通りません。ググった例だとドメインを付けてもちゃんと通るようなのですが、うちの環境設定のせいなのか、ドメインを付けると宛先なしになってしまって、小2時間ほどはまりました。
ローカル配送時のドメインの取扱いの問題のような気がしますが、aliases.regに来たときには、@以下はなくなっている模様。このことにあまり時間をかけていられないのと、ここに来るのは自分管理のドメインだけなので、ドメイン共通でもいいかということで、これでいいことにします。
これで、info+123@min10.comでも、info123@min10.comでも、info@min10.comで受けられるようになりました。コメント、ありがとうございました。