Ok I finally got postfix to work with virtual users and cyrus-imapd.
I should write a tutorial for those that will encounter the same
problem.
My problem was with local_recipient_maps. Even though it's commented
out in main.cf the default is local_recipient_maps =
unix:passwd.byname $alias_maps
In my sasl section within main.cf I had the following:
smtpd_sasl_auth_enable = yes
broken_sasl_auth_clients = yes
smtpd_sasl_local_domain = $myhostname
smtpd_sender_login_maps = hash:/etc/postfix/sasl_senders
smtpd_recipient_restrictions = permit_sasl_authenticated,
reject_unauth_destination
smtpd_sasl_security_options = noanonymous
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
All I had to do was adding the smtpd_sender_login_maps look up table
to my local_recipient_maps. In the end it looks like this:
local_recipient_maps = unix:passwd.byname $alias_maps hash:/etc/
postfix/sasl_senders
For those who don't know, the new users map is just a file with
user@xxxxxxxxxxxx on the left and user name on the right
( user@xxxxxxxxxxxxxx user ) then you run the command postmap /
path/to/this/file and the table is created for postfix to use it.
Sure :| If you review one of my previous answers in the thread about
Cyrus-IMAPd you will find a warning about using the create on post
option of the autocreate patch. You now see the effect: each spam mail
to a local domain but with a random, non existing account will create
you a new mailbox.
if the spam email is directed to an unknown user and Postfix rejects
it, then I have nothing to worry about those emails autocreating
mailboxes in cyrus-imapd.
Thank you so much for your help Alexander.
EJ