I have configured postfix so it will deliver mail to virtual mailboxes. For some reason, the mail is not delivered to the virtual mailboxes unless both $virtual_alias_domains and $virtual_alias_maps are left undefined: these directives are apparently for aliasing virtual users "@" virtual domains to "real" unix users on the local system.
--%%== # ADDRESS REDIRECTION (VIRTUAL DOMAIN) # # The VIRTUAL_README document gives information about the many forms # of domain hosting that Postfix supports. virtual_mailbox_domains = domain1.example.org domain2.example.com virtual_transport = virtual #virtual_alias_domains = domain1.example.org domain2.example.com virtual_mailbox_base = /var/mail/vhosts virtual_mailbox_maps = hash:/etc/postfix/vmailbox virtual_minimum_uid = 100 virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 #virtual_alias_maps = hash:/etc/postfix/virtual ==%--
First of all I won't recommend using native postfix 'virtual' delivery agent, if you already have dovecot as the mailbox server. It will work ok, as long as you use standard mailbox or maildir store in dovecot, but does not allow to use some dovecot-specific options, does not allow more modern storage formats (dbox), does not update indexes at delivery time and does not allow to run sieve scripts.
IMO it's better to use either dovecot-lda configured as a postfix 'pipe' service, or LMTP.
If the $virtual_alias_maps directive invalidates virtual mailboxes, then "the usual" aliases (postmaster@, etc.) for the virtual domains would have to be listed in /etc/aliases along with the non-virtual aliases, but this does not work either, and generates a warning when "newaliases" is run.
postalias: warning: /etc/aliases, line 99: name must be local
So as far as I can tell, no aliasing at all is available for "virtual_mailbox_domains" in postfix
Yes, there's no easy way to do aliases in postfix for a domain that's declared as virtual_mailbox. You can alias virtual_mailbox domain addresses to local adresses, virtual_alias to virtual_mailbox, but not virtual_mailbox to virtual_mailbox, if I am correct.
If you switch to dovecot-lda or LMTP, the aliases are best handled on the dovecot side by appropriate userdb setup. Using a database is handy. You could also setup virtual_mailbox_maps in postfix to use the same database so you have the same source of data. For my small setup I use sqlite, but one could use mysql.
I am still unsure how to authenticate the virtual users on postfix. PAM authentication works fine for non-virtual users. The following command gives two options for authentication: cyrus-sasl and dovecot-sasl.
# postconf -a cyrus dovecot
Use smtpd_sasl_* settings and configure dovecot to provide auth listener socket (either UNIX or TCP).
-- Piotr "Malgond" Auksztulewicz firstname@lastname.net