プライバシーポリシー

2017年7月18日火曜日

Postfix で user+foo@domain 形式のエイリアスを使う方法

Gmail では、user+foo@gmail.com 形式のメールアドレス別名が使えることはご存じの方が多いと思います。すなわち、自分のGmailアドレスが user@gmail.com である場合、user+foo@gmail.com や user+pokemon@gmail.comに送られたメールも、受け取ることができます。
私は個人ではPostfixをMTAとして運用しており、ウェブサービス等に登録するメールアドレスはサービス毎に別のメールアドレスを用いています。Yahoo! には yahoo5412@example.com、Googleには google4813@example.com という具合です(実際のメールアドレスは異なります)。しかし、多くのサービスに登録する場合、一々エイリアスを登録するのも面倒です。
そこで、Postfixでもuser+foo形式のエイリアスが使えないかと思い調べたところ、標準機能でサポートしているのですね。Postfixではこの機能をアドレス拡張(Address Extensions)と呼んでいるようです。
アドレス拡張をPostfixに設定するには、main.cf に下記を指定します。

recipient_delimiter = +

この後Postfixを再起動すると、user+foo@examle.com という形で別名が使えるようになります。fooの部分は任意の文字列(メールアドレスのローカルパートに使える文字であれば)が使用できます。

上記を見てお気づきかと思いますが、デリミタとして使用できる記号は変更可能です。例えば、プラス記号の代わりにドットを使うと、以下のように一見エイリアスとは見えない形にすることもできます。

user.foo@example.com

ここでちょっと悪乗りして、recipient_delimiter に英数字は使えないのかと思い試してみました。

recipient_delimiter = 0

上記のように指定すると、ちゃんと(?) user0foo@example.comというアドレス指定で、user@examle.comのメールボックスに届きました…が、デリミタを英数字にするのはあまりにも紛らわしいので実運用ではやめた方がよさそうですね。

まとめ

  • Postfixでも user+foo@domain 形式のエイリアス(アドレス拡張)が使用できる
  • Postfixでアドレス拡張を用いるには、main.cfのrecipient_delimiterでデリミタを指定する
  • アドレス拡張のデリミタには記号の他、英数字も使えるようだが、英数字はやめた方がよい