My email server is running Postfix with postfixadmin-style virtual users and domains. The LDA is Dovecot.

I wanted to add support for $recipient_delimiter so I can get addresses like user+service@example.com behave like user@example.com.

Most of the documentation says that you just need to set Postfix's $recipient_delimiter variable to the (set of) character(s) you want to use as a delimiter, like recipient_delimiter = +. That's fine if you're just using local delivery. But when you use Dovecot's LDA (or other LDA), you should also modify how it's called in master.cf.

In my case the dovecot service configuration ended up like this:

dovecot   unix  -       n       n       -       -       pipe
  flags=DRhu user=vmail:vmail argv=/usr/lib/dovecot/deliver -f ${sender} -a ${recipient} -d ${user}@${nexthop}

Restarting postfix service made it works.

Tagged as postfix, recipient_delimiter, dovecot, virtual

If you liked this post, you can donate using Bitcoin 12jVrWkk5S6x5hEizThZwgTx59KxaDdK4C