|The '90s lovely logo of Postfix|
postfix is a great software that I like to use for mailservers; in this post I want to describe you one feature that works in a counter-intuitive way.
In postfix you can define mailboxes by specifying in your /etc/postfix/main.cf:
virtual_mailbox_maps = hash:/etc/postfix/virtual_mailbox_maps
Official virtual MAILBOX example here
You can also specify aliases, e.g. mailboxes that directly forward to other mailboxes, by specifying:
virtual_alias_maps = hash:/etc/postfix/virtual_alias_maps
Official virtual ALIAS example here
Aliases are useful for example when you want to define a catch-all alias forwarding all mail to the postmaster address.
Priority matters!However, what I dislike is the priority applied to both: aliases have higher priority than mailbox maps (yes, you've read right).
The first time I configured an alias I got all mail delivered to the catch-all address because I thought that - being less catchy - the catch-all addresses would have less priority.
What you need to do is instead add identity definitions to the aliases map, this way:
In above example of virtual_alias_maps, the last line is the catch-all line, while the other lines are inherent to mailbox maps defined in virtual_mailbox_maps.
Now tell me if that's not counter-intuitive, error-prone (because of the duplication) and less easy to mantain.