${domain} is a somewhat recent addition to Postfix. I guess the docs could say to use ${domain} instead of ${nexthop} if Postfix is newer than X (should look up what version added that).
${domain} parameter has been added starting with Postfix 2.5, which means that people using "enterprise" linux distros that usually ship with old versions of software won't be able to use it.
Anyway, I'm guessing that the real problem here lies in the fact that John used "mailbox_transport = dovecot" to instruct Postfix how to deliver e-mails, instead of using virtual_transport Postfix parameter as instructed in the Dovecot's wiki. Parameter mailbox_transport is used to set optional message delivery transport that Postfix's *local* delivery agent should use for delivery and since it's actually a local delivery, nexthop is by default set to $myhostname (using local_transport parameter), instead of the actual virtual domain. Hi Marko
mr.maX wrote: thanks for that clarification. That clears up why next_hop was not evaluating to the domain. I don't have a mixture of local and virtual mailboxes so for me using postfix local delivery via mailbox transport (what I used to do with cyrus and with dbmail) was fine too and also evaluates the local aliases file, though I could rewrite that to virtual_alias_maps...
However, it means the wiki documentation doesn't need changing: the next_hop parameter is consistent with the rest of the instructions. It's my setup that was different. If someone choses to do it the way I have done, they can see the solution in the list archives.
thanks everyone. John