Hello Everyone, I have a fairly complex mail server setup with Postfix+Clamav+DSPAM+PPolicy+Dovecot+Virtual users on a single server.
I dealing with a very strange problem Aliases are not working on my mailing system which are coming from proxy:mysql:/etc/postfix/virtual_alias_maps.cf host mail.company.com[public/dovecot-lmtp] said: 550 5.1.1 <al...@company.com> User doesn't exist: al...@company.com (in reply to RCPT TO command) But when a message comes in from the outside which goes through dspam/clamav then get reinjected on port 10024, which uses the /etc/dspam/dspam.d/mysql.conf they work perfectly. With other words: 1, us...@gmail.com -> ali...@company.com Can send letters to the ali...@company.com, it will be properly resolved to the users for that alias from mysql and they will all receive the letter. 2, us...@company.com -> ali...@company.com Can not send letters to ali...@company.com, the alias will not be looked up by postfix, it will try to pass on the letter to dovecot-lmtp which of course will say that there is no such user like "ali...@company.com" so I got the 550. This is a postfix problem it is crystal clear. The SQL connection works in both cases. When I use: postmap -q ali...@comapny.com mysql:/etc/postfix/virtual_alias_maps.cf That returns the correct list of aliases. The relevant config section is here from main.cf: # Virtual users virtual_uid_maps = static:5000 virtual_gid_maps = static:5000 virtual_mailbox_domains = proxy:mysql:/etc/postfix/virtual_domains_maps.cf virtual_mailbox_maps = proxy:mysql:/etc/postfix/virtual_mailbox_maps.cf virtual_alias_maps = proxy:mysql:/etc/postfix/virtual_alias_maps.cf proxy:mysql:/etc/postfix/rfc2142_defaults.cf virtual_transport = lmtp:unix:public/dovecot-lmtp This makes utterly no fucking sense to me that when a mail from the outside comes in to the system and goes through all sort of virus, spam filtering etc including the alias check it works but when the mail would go the short way (local drop) it doesn't. I went all the way into tcpdumping the mysql (since we store everything there for the mail system (users, domains, quotas, spam training, groupware etc)). When a mail comes in from an external domain: 1, virtual alias maps query succeeds and returns the number of addresses 2, DSPAM query (select uid from dspam_virtual_uids WHERE username='ali...@company.com') returns an id no 3, virtual alias maps query again When a mail comes in from an internal domain: 1, virtual alias maps query succeeds and returns the number of addresses I need to solve this very quickly any help is welcome! Thank you!