Postfix の拡張メールアドレス

これは Postfix Advent Calendar 2014 の4日目の記事です。

Postfix では拡張メールアドレスを使うことができます。

tmtms@example.com というメールアドレスがあった場合、tmtms+ext@example.com というメールアドレスも自動的に有効になります。ext 部分はなんでも構いません。

サービス毎に異なるメールアドレスを登録したい場合にいちいち aliases 等でメールアドレスを新たに作成する必要はありません。

Gmail でも使えるようですが自分は Gmail 使ってないので詳しくは知りません。元々の発祥は qmail だと思います。

[追記] どうやら qmail 以前に Sendmail でも使えたようです。

拡張メールアドレスを使うには、recipient_delimiter パラメータに区切り文字を設定します。 上のように tmtms+ext@example.com としたい場合は、recipient_delimiter = + とします。

この前 Postfix の最近のパラメータについて調べたときに気がついたのですが、Postfix 2.11 から recipient_delimiter に複数文字を登録できるようになってました。

recipient_delimiter = +- と設定すると、tmtms+ext@example.comtmtms-ext@example.com の両方が拡張アドレスとして使えるようになります。

ときどきメールアドレスに + 文字が使えないダメなサイトがあるので、その時に代わりに - を使ったりすることができて便利ですね。

RFC5322 的にローカルパートで普通に使える文字は次のとおりです。これらの文字以外は recipient_delimiter には指定しない方がいいと思います。

ASCII英数字と ! # $ % & ' * + - / = ? ^ _ ` { | } ~

特定の拡張メールアドレス宛にきたメールだけ特別な処理をしたい場合は、$HOME/.forward+ext として forward ファイルを書いておくとそれが使用されます。

たとえば、あるサービスに tmtms+hoge@example.com として登録した後、そのメールアドレスに迷惑メールが送られてきてしまうという場合は、$HOME/.forward+hoge ファイルに /dev/null と書いておくとメールを見なくてすみます。