ローカル部が動的なアドレスに空メールを送ってもらってmabuhayしたい!

タイトル通り。環境はなんでもいいだろうけど、今回は OS は CentOS5 で Postfix かつ Rails2 かつ ActionMailer を使う感じ。
メールを送ってもらってすぐにアクションを起こす方法は前に書いた。

ただ空メールのfromからアドレスを見るだけならこれだけでいい。でもそれだけじゃなくて、すでに何らかの情報をDBに登録してある状態で、それとメールアドレスを関連づけたい。どうしたもんかと考えたけど、メールアドレスのローカル部を、暗号化したIDとかにしておく、なんてのが割とオーソドックスで良いんじゃないかなと思った。
これだと問題になるのが /etc/postfix/virtual でどうやって割り振るかということ。要するにローカル部が静的でなく、動的になるので正規表現を使いたい。
結論から言うと使える。
ただしPostfixがサポートしてる検索テーブルの種類に正規表現(pcre)があるかどうかを確認する。

# postconf -m
btree
cidr
environ
hash
ldap
nis
pcre
proxy
regexp
static
unix

ある、いけるみたい。
今まで使っていた(らしい)hash から pcre に変えることで正規表現が使える。

# vi /etc/postfix/main.cf
virtual_maps = pcre:/etc/postfix/virtual
#前までは↓
#virtual_maps = hash:/etc/postfix/virtual

ものすごくざっくり書くとこんなかんじ。

# vi /etc/postfix/virtual
/^[0-9a-z]+@domain/        foobar

適応する。

# postmap /etc/postfix/virtual

あとは前書いたメモの応用になる、モンシェリ

あと Rails のバージョンを1から2にした場合は以下にも注意。